From c6ee9a5a525f86e644c017f7240eb0b01e82dbdc Mon Sep 17 00:00:00 2001 From: James Player Date: Tue, 1 Jul 2025 12:58:31 +1200 Subject: [PATCH] feat(ui): Rebranding - r8s-374 (#840) --- app/assets/css/button.css | 102 ++-- app/assets/css/colors.json | 25 + app/assets/css/theme.css | 53 +- app/assets/css/vendor-override.css | 20 +- app/assets/ico/android-chrome-192x192.png | Bin 5654 -> 1922 bytes app/assets/ico/android-chrome-256x256.png | Bin 8347 -> 2510 bytes app/assets/ico/apple-touch-icon.png | Bin 6116 -> 1840 bytes app/assets/ico/favicon-16x16.png | Bin 772 -> 368 bytes app/assets/ico/favicon-32x32.png | Bin 1137 -> 491 bytes app/assets/ico/favicon.ico | Bin 2334 -> 7550 bytes app/assets/ico/logomark.svg | 39 +- app/assets/ico/mstile-150x150.png | Bin 8697 -> 1535 bytes app/assets/ico/safari-pinned-tab.svg | 7 +- app/assets/images/logo.png | Bin 5074 -> 0 bytes app/assets/images/logo_alt.png | Bin 11073 -> 0 bytes app/assets/images/logo_alt.svg | 72 +-- app/assets/images/logo_alt_black.svg | 14 + app/assets/images/logo_ico.png | Bin 4253 -> 0 bytes app/assets/images/logo_small.png | Bin 3105 -> 0 bytes app/assets/images/logo_small_alt.png | Bin 2941 -> 0 bytes app/assets/images/purple-gradient.svg | 522 ++++++++++++++++++ app/index.html | 7 +- app/portainer/views/auth/auth.html | 5 +- app/portainer/views/init/admin/initAdmin.html | 5 +- app/portainer/views/logout/logout.html | 5 +- app/react/components/InformationPanel.tsx | 2 +- .../account/AccountView/theme-options.tsx | 6 +- .../sidebar/EnvironmentSidebar.module.css | 5 +- app/react/sidebar/EnvironmentSidebar.tsx | 4 +- app/react/sidebar/Footer/Footer.tsx | 4 +- app/react/sidebar/Footer/portainer_logo.svg | 36 -- app/react/sidebar/Header.module.css | 6 +- app/react/sidebar/Header.tsx | 16 +- app/react/sidebar/SidebarItem/SidebarItem.tsx | 4 +- .../sidebar/SidebarItem/SidebarParent.tsx | 4 +- .../sidebar/SidebarItem/SidebarTooltip.tsx | 2 +- .../SidebarItem/useSidebarSrefActive.tsx | 2 +- app/react/sidebar/logomark-BE.svg | 11 + app/react/sidebar/logomark-CE.svg | 11 + app/react/sidebar/portainer_logo-BE.svg | 78 ++- app/react/sidebar/portainer_logo-CE.svg | 96 ++-- 41 files changed, 821 insertions(+), 342 deletions(-) delete mode 100644 app/assets/images/logo.png delete mode 100644 app/assets/images/logo_alt.png create mode 100644 app/assets/images/logo_alt_black.svg delete mode 100644 app/assets/images/logo_ico.png delete mode 100644 app/assets/images/logo_small.png delete mode 100644 app/assets/images/logo_small_alt.png create mode 100644 app/assets/images/purple-gradient.svg delete mode 100644 app/react/sidebar/Footer/portainer_logo.svg create mode 100644 app/react/sidebar/logomark-BE.svg create mode 100644 app/react/sidebar/logomark-CE.svg diff --git a/app/assets/css/button.css b/app/assets/css/button.css index 0aece2a15..547d9fdc0 100644 --- a/app/assets/css/button.css +++ b/app/assets/css/button.css @@ -29,43 +29,79 @@ fieldset[disabled] .btn { } .btn.btn-primary { - @apply border-blue-8 bg-blue-8 text-white; - @apply hover:border-blue-9 hover:bg-blue-9 hover:text-white; - @apply th-dark:hover:border-blue-7 th-dark:hover:bg-blue-7; + @apply border-graphite-700 bg-graphite-700 text-mist-100; + @apply hover:border-graphite-700/90 hover:bg-graphite-700/90 hover:text-mist-100; + @apply focus:border-blue-5 focus:shadow-graphite-700/80 focus:text-mist-100; + + @apply th-dark:border-mist-100 th-dark:bg-mist-100 th-dark:text-graphite-700; + @apply th-dark:hover:border-mist-100/90 th-dark:hover:bg-mist-100/90 th-dark:hover:text-graphite-700; + @apply th-dark:focus:border-blue-5 th-dark:focus:shadow-white/80 th-dark:focus:text-graphite-700; + + @apply th-highcontrast:border-mist-100 th-highcontrast:bg-mist-100 th-highcontrast:text-graphite-700; + @apply th-highcontrast:hover:border-mist-100/90 th-highcontrast:hover:bg-mist-100/90 th-highcontrast:hover:text-graphite-700; + @apply th-highcontrast:focus:border-blue-5 th-highcontrast:focus:shadow-white/80 th-highcontrast:focus:text-graphite-700; +} + +/* Sidebar background is always dark, so we need to override the primary button styles */ +.btn.btn-primary.sidebar { + @apply border-mist-100 bg-mist-100 text-graphite-700; + @apply hover:border-mist-100/90 hover:bg-mist-100/90 hover:text-graphite-700; + @apply focus:border-blue-5 focus:shadow-white/80 focus:text-graphite-700; } .btn.btn-primary:active, .btn.btn-primary.active, .open > .dropdown-toggle.btn-primary { - @apply border-blue-5 bg-blue-9; + @apply border-graphite-700/80 bg-graphite-700 text-mist-100; + @apply th-dark:border-white/80 th-dark:bg-mist-100 th-dark:text-graphite-700; + @apply th-highcontrast:border-white/80 th-highcontrast:bg-mist-100 th-highcontrast:text-graphite-700; } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - @apply bg-blue-8; + @apply bg-graphite-700 text-mist-100; + @apply th-dark:bg-mist-100 th-dark:text-graphite-700; + @apply th-highcontrast:bg-mist-100 th-highcontrast:text-graphite-700; } /* Button Secondary */ .btn.btn-secondary { @apply border border-solid; - @apply border-blue-8 bg-blue-2 text-blue-9; - @apply hover:bg-blue-3; + @apply border-graphite-700 bg-mist-100 text-graphite-700; + @apply hover:border-graphite-700 hover:bg-graphite-700/10 hover:text-graphite-700; + @apply focus:border-blue-5 focus:shadow-graphite-700/20 focus:text-graphite-700; - @apply th-dark:border-blue-7 th-dark:bg-gray-10 th-dark:text-blue-3; - @apply th-dark:hover:bg-blue-11; + @apply th-dark:border-mist-100 th-dark:bg-graphite-700 th-dark:text-mist-100; + @apply th-dark:hover:border-mist-100 th-dark:hover:bg-mist-100/20 th-dark:hover:text-mist-100; + @apply th-dark:focus:border-blue-5 th-dark:focus:shadow-white/80 th-dark:focus:text-mist-100; + + @apply th-highcontrast:border-mist-100 th-highcontrast:bg-graphite-700 th-highcontrast:text-mist-100; + @apply th-highcontrast:hover:border-mist-100 th-highcontrast:hover:bg-mist-100/20 th-highcontrast:hover:text-mist-100; + @apply th-highcontrast:focus:border-blue-5 th-highcontrast:focus:shadow-white/80 th-highcontrast:focus:text-mist-100; +} + +.btn.btn-secondary:active, +.btn.btn-secondary.active, +.open > .dropdown-toggle.btn-secondary { + @apply border-graphite-700 bg-graphite-700/10 text-graphite-700; + @apply th-dark:border-mist-100 th-dark:bg-mist-100/20 th-dark:text-mist-100; + @apply th-highcontrast:border-mist-100 th-highcontrast:bg-mist-100/20 th-highcontrast:text-mist-100; } .btn.btn-danger { @apply border-error-8 bg-error-8; @apply hover:border-error-7 hover:bg-error-7 hover:text-white; + @apply focus:border-blue-5 focus:shadow-error-8/20 focus:text-white; + @apply th-dark:focus:border-blue-5 th-dark:focus:shadow-white/80 th-dark:focus:text-white; + @apply th-highcontrast:focus:border-blue-5 th-highcontrast:focus:shadow-white/80 th-highcontrast:focus:text-white; } .btn.btn-danger:active, .btn.btn-danger.active, .open > .dropdown-toggle.btn-danger { - @apply border-blue-5 bg-error-8 text-white; + @apply border-error-5 bg-error-8 text-white; } .btn.btn-dangerlight { @@ -74,6 +110,10 @@ fieldset[disabled] .btn { @apply hover:bg-error-2 th-dark:hover:bg-error-11; @apply border-error-5 th-highcontrast:border-error-7 th-dark:border-error-7; @apply border border-solid; + + @apply focus:border-blue-5 focus:shadow-error-8/20 focus:text-error-9; + @apply th-dark:focus:border-blue-5 th-dark:focus:shadow-white/80 th-dark:focus:text-white; + @apply th-highcontrast:focus:border-blue-5 th-highcontrast:focus:shadow-white/80; } .btn.btn-icon.btn-dangerlight { @apply hover:text-error-11 th-dark:hover:text-error-7; @@ -90,15 +130,18 @@ fieldset[disabled] .btn { /* secondary-grey */ .btn.btn-default, .btn.btn-light { - @apply border-gray-5 bg-white text-gray-7; - @apply hover:border-gray-5 hover:bg-gray-3 hover:text-gray-9; + @apply border-gray-5 bg-white text-gray-8; + @apply hover:border-gray-5 hover:bg-gray-3 hover:text-gray-10; + @apply focus:border-blue-5 focus:shadow-graphite-700/20 focus:text-gray-8; /* dark mode */ @apply th-dark:border-gray-warm-7 th-dark:bg-gray-iron-10 th-dark:text-gray-warm-4; @apply th-dark:hover:border-gray-6 th-dark:hover:bg-gray-iron-9 th-dark:hover:text-gray-warm-4; + @apply th-dark:focus:border-blue-5 th-dark:focus:shadow-white/80 th-dark:focus:text-gray-warm-4; @apply th-highcontrast:border-gray-2 th-highcontrast:bg-black th-highcontrast:text-white; @apply th-highcontrast:hover:border-gray-6 th-highcontrast:hover:bg-gray-9 th-highcontrast:hover:text-gray-warm-4; + @apply th-highcontrast:focus:border-blue-5 th-highcontrast:focus:shadow-white/80 th-highcontrast:focus:text-white; } .btn.btn-light:active, @@ -119,42 +162,17 @@ fieldset[disabled] .btn { .input-group-btn .btn.active, .btn-group .btn.active { - @apply border-blue-5 bg-blue-2 text-blue-10; - @apply th-dark:border-blue-9 th-dark:bg-blue-11 th-dark:text-blue-2; -} - -/* focus */ - -.btn.btn-primary:focus, -.btn.btn-secondary:focus, -.btn.btn-light:focus { - @apply border-blue-5; -} - -.btn.btn-danger:focus, -.btn.btn-dangerlight:focus { - @apply border-blue-6; -} - -.btn.btn-primary:focus, -.btn.btn-secondary:focus, -.btn.btn-light:focus, -.btn.btn-danger:focus, -.btn.btn-dangerlight:focus { - --btn-focus-color: var(--ui-blue-3); - box-shadow: 0px 0px 0px 4px var(--btn-focus-color); + @apply border-graphite-700/80 bg-graphite-700 text-mist-100; + @apply th-dark:border-white/80 th-dark:bg-mist-100 th-dark:text-graphite-700; + @apply th-highcontrast:border-white/80 th-highcontrast:bg-mist-100 th-highcontrast:text-graphite-700; } .btn.btn-icon:focus { box-shadow: none !important; } -[theme='dark'] .btn.btn-primary:focus, -[theme='dark'] .btn.btn-secondary:focus, -[theme='dark'] .btn.btn-light:focus, -[theme='dark'] .btn.btn-danger:focus, -[theme='dark'] .btn.btn-dangerlight:focus { - --btn-focus-color: var(--ui-blue-11); +.btn:focus { + box-shadow: 0px 0px 0px 2px var(--tw-shadow-color); } a.no-link, diff --git a/app/assets/css/colors.json b/app/assets/css/colors.json index 55f2922e5..94d3c2015 100644 --- a/app/assets/css/colors.json +++ b/app/assets/css/colors.json @@ -1,6 +1,31 @@ { "black": "#000000", "white": "#ffffff", + "graphite": { + "10": "#f5f5f6", + "50": "#e5e6e8", + "100": "#ced0d3", + "200": "#abafb5", + "300": "#7b8089", + "400": "#5c6066", + "500": "#484a4e", + "600": "#3a3b3f", + "700": "#2e2f33", + "800": "#222326", + "900": "#161719" + }, + "mist": { + "50": "#fcfbfa", + "100": "#f7f6f3", + "200": "#f0f0ec", + "300": "#e8e7e2", + "400": "#e2e1db", + "500": "#d9d8d2", + "600": "#ceccc4", + "700": "#bebcb4", + "800": "#a7a6a0", + "900": "#8b8983" + }, "gray": { "1": "#fcfcfd", "2": "#f9fafb", diff --git a/app/assets/css/theme.css b/app/assets/css/theme.css index eb2d36882..318e0d9e4 100644 --- a/app/assets/css/theme.css +++ b/app/assets/css/theme.css @@ -3,6 +3,16 @@ --black-color: var(--ui-black); --white-color: var(--ui-white); + --graphite-600: #3a3b3f; + --graphite-700: #2e2f33; + --graphite-800: #222326; + --graphite-900: #161719; + + --mist-50: #fcfbfa; + --mist-100: #f7f6f3; + --mist-200: #f0f0ec; + --mist-300: #e8e7e2; + --grey-1: #212121; --grey-2: #181818; --grey-3: #383838; @@ -58,6 +68,8 @@ --grey-58: #ebf4f8; --grey-59: #e6e6e6; --grey-61: rgb(231, 231, 231); + --grey-62: #fdfdfd; + --grey-63: #121212; --blue-1: #219; --blue-2: #337ab7; @@ -99,17 +111,16 @@ /* Default Theme */ --bg-card-color: var(--white-color); --bg-main-color: var(--white-color); - --bg-body-color: var(--grey-9); + --bg-body-color: var(--grey-62); --bg-checkbox-border-color: var(--grey-49); - --bg-sidebar-color: var(--ui-blue-10); - --bg-sidebar-nav-color: var(--ui-blue-11); + --bg-sidebar-color: var(--graphite-700); + --bg-sidebar-nav-color: var(--graphite-600); --bg-widget-color: var(--white-color); --bg-widget-header-color: var(--grey-10); --bg-widget-table-color: var(--ui-gray-3); --bg-header-color: var(--white-color); --bg-hover-table-color: var(--grey-14); --bg-input-group-addon-color: var(--ui-gray-3); - --bg-btn-default-color: var(--ui-blue-10); --bg-blocklist-hover-color: var(--ui-blue-2); --bg-table-color: var(--white-color); --bg-md-checkbox-color: var(--grey-12); @@ -128,7 +139,8 @@ --border-pagination-color: var(--ui-white); --bg-pagination-span-color: var(--white-color); --bg-pagination-hover-color: var(--ui-blue-3); - --bg-motd-body-color: var(--grey-20); + --bg-motd-body-color: var(--mist-50); + --bg-motd-btn-color: var(--graphite-700); --bg-item-highlighted-color: var(--grey-21); --bg-item-highlighted-null-color: var(--grey-14); --bg-panel-body-color: var(--white-color); @@ -144,8 +156,6 @@ --bg-daterangepicker-in-range: var(--grey-58); --bg-daterangepicker-active: var(--blue-14); --bg-input-autofill-color: var(--bg-inputbox); - --bg-btn-default-hover-color: var(--ui-blue-9); - --bg-btn-focus: var(--grey-59); --bg-small-select-color: var(--white-color); --bg-stepper-item-active: var(--white-color); --bg-stepper-item-counter: var(--grey-61); @@ -177,7 +187,6 @@ --text-navtabs-color: var(--grey-7); --text-navtabs-hover-color: var(--grey-6); --text-nav-tab-active-color: var(--grey-25); - --text-dropdown-menu-color: var(--grey-6); --text-log-viewer-color: var(--black-color); --text-json-tree-color: var(--blue-3); @@ -189,6 +198,8 @@ --text-pagination-color: var(--grey-26); --text-pagination-span-color: var(--grey-3); --text-pagination-span-hover-color: var(--grey-3); + --text-motd-body-color: var(--black-color); + --text-motd-btn-color: var(--mist-100); --text-summary-color: var(--black-color); --text-tooltip-color: var(--white-color); --text-rzslider-color: var(--grey-36); @@ -203,6 +214,7 @@ --text-button-group-color: var(--ui-gray-9); --text-button-dangerlight-color: var(--ui-error-5); --text-stepper-active-color: var(--ui-blue-8); + --border-color: var(--grey-42); --border-widget-color: var(--grey-43); --border-sidebar-color: var(--ui-blue-9); @@ -218,7 +230,8 @@ --border-pre-color: var(--grey-43); --border-pagination-span-color: var(--ui-white); --border-pagination-hover-color: var(--ui-white); - --border-panel-color: var(--white-color); + --border-motd-body-color: var(--mist-300); + --border-panel-color: var(--mist-300); --border-input-sm-color: var(--grey-47); --border-daterangepicker-color: var(--grey-19); --border-calendar-table: var(--white-color); @@ -265,8 +278,7 @@ --text-log-viewer-color-json-red: var(--text-log-viewer-color); --text-log-viewer-color-json-blue: var(--text-log-viewer-color); - --bg-body-color: var(--grey-2); - --bg-btn-default-color: var(--grey-3); + --bg-body-color: var(--grey-63); --bg-blocklist-hover-color: var(--ui-gray-iron-10); --bg-blocklist-item-selected-color: var(--ui-gray-iron-10); --bg-card-color: var(--grey-1); @@ -274,8 +286,6 @@ --bg-code-color: var(--grey-2); --bg-dropdown-menu-color: var(--ui-gray-warm-8); --bg-main-color: var(--grey-2); - --bg-sidebar-color: var(--grey-1); - --bg-sidebar-nav-color: var(--grey-2); --bg-widget-color: var(--grey-1); --bg-widget-header-color: var(--grey-3); --bg-widget-table-color: var(--grey-3); @@ -296,7 +306,8 @@ --bg-pagination-color: var(--grey-3); --bg-pagination-span-color: var(--grey-1); --bg-pagination-hover-color: var(--grey-3); - --bg-motd-body-color: var(--grey-1); + --bg-motd-body-color: var(--graphite-800); + --bg-motd-btn-color: var(--mist-100); --bg-item-highlighted-color: var(--grey-2); --bg-item-highlighted-null-color: var(--grey-2); --bg-panel-body-color: var(--grey-1); @@ -316,8 +327,6 @@ --bg-daterangepicker-in-range: var(--ui-gray-warm-11); --bg-daterangepicker-active: var(--blue-14); --bg-input-autofill-color: var(--bg-inputbox); - --bg-btn-default-hover-color: var(--grey-4); - --bg-btn-focus: var(--grey-3); --bg-small-select-color: var(--grey-2); --bg-stepper-item-active: var(--grey-1); --bg-stepper-item-counter: var(--grey-7); @@ -348,7 +357,6 @@ --text-navtabs-color: var(--grey-8); --text-navtabs-hover-color: var(--grey-9); --text-nav-tab-active-color: var(--white-color); - --text-dropdown-menu-color: var(--white-color); --text-log-viewer-color: var(--white-color); --text-json-tree-color: var(--grey-40); @@ -360,6 +368,8 @@ --text-pagination-color: var(--white-color); --text-pagination-span-color: var(--ui-white); --text-pagination-span-hover-color: var(--ui-white); + --text-motd-body-color: var(--mist-100); + --text-motd-btn-color: var(--graphite-700); --text-summary-color: var(--white-color); --text-tooltip-color: var(--white-color); --text-rzslider-color: var(--white-color); @@ -374,6 +384,7 @@ --text-button-group-color: var(--ui-white); --text-button-dangerlight-color: var(--ui-error-7); --text-stepper-active-color: var(--ui-white); + --border-color: var(--grey-3); --border-widget-color: var(--grey-1); --border-sidebar-color: var(--ui-gray-8); @@ -391,6 +402,7 @@ --border-blocklist-item-selected-color: var(--grey-31); --border-pagination-span-color: var(--grey-1); --border-pagination-hover-color: var(--grey-3); + --border-motd-body-color: var(--graphite-800); --border-panel-color: var(--grey-2); --border-input-sm-color: var(--grey-3); --border-daterangepicker-color: var(--grey-3); @@ -450,6 +462,7 @@ --bg-panel-body-color: var(--black-color); --bg-dropdown-menu-color: var(--ui-gray-warm-8); --bg-motd-body-color: var(--black-color); + --bg-motd-btn-color: var(--white-color); --bg-blocklist-hover-color: var(--black-color); --bg-blocklist-item-selected-color: var(--black-color); --bg-input-group-addon-color: var(--grey-3); @@ -481,11 +494,8 @@ --bg-navtabs-hover-color: var(--grey-3); --bg-nav-tab-active-color: var(--ui-black); - --bg-btn-default-color: var(--black-color); --bg-input-autofill-color: var(--bg-inputbox); --bg-code-color: var(--ui-black); - --bg-btn-default-hover-color: var(--grey-4); - --bg-btn-focus: var(--black-color); --bg-small-select-color: var(--black-color); --bg-stepper-item-active: var(--black-color); --bg-stepper-item-counter: var(--grey-3); @@ -523,6 +533,8 @@ --text-daterangepicker-end-date: var(--ui-white); --text-daterangepicker-in-range: var(--white-color); --text-daterangepicker-active: var(--white-color); + --text-motd-body-color: var(--white-color); + --text-motd-btn-color: var(--black-color); --text-json-tree-color: var(--white-color); --text-json-tree-leaf-color: var(--white-color); --text-json-tree-branch-preview-color: var(--white-color); @@ -553,6 +565,7 @@ --border-input-sm-color: var(--white-color); --border-pagination-color: var(--grey-1); --border-pagination-span-color: var(--grey-1); + --border-motd-body-color: var(--white-color); --border-daterangepicker-color: var(--white-color); --border-calendar-table: var(--black-color); --border-daterangepicker: var(--black-color); diff --git a/app/assets/css/vendor-override.css b/app/assets/css/vendor-override.css index 74fa94d4e..12e0fc947 100644 --- a/app/assets/css/vendor-override.css +++ b/app/assets/css/vendor-override.css @@ -201,8 +201,18 @@ pre { background-color: var(--bg-progress-color); } -.motd-body { - background-color: var(--bg-motd-body-color) !important; +.widget-body.motd-body { + border: 1px solid var(--border-motd-body-color); + color: var(--text-motd-body-color); + background: var(--bg-motd-body-color) url(../images/purple-gradient.svg) top right / 40% no-repeat; +} + +.widget-body.motd-body .btn.btn-link, +.widget-body.motd-body .btn.btn-link:hover { + padding: 0 5px 0 4px; + border-radius: 4px; + background-color: var(--bg-motd-btn-color); + color: var(--text-motd-btn-color); } .panel-body { @@ -408,14 +418,10 @@ input:-webkit-autofill { } .sidebar.tippy-box[data-placement^='right'] > .tippy-arrow:before { - border-right: 8px solid var(--ui-blue-9); + border-right: 8px solid var(--graphite-600); border-width: 6px 8px 6px 0; } -[theme='dark'] .sidebar.tippy-box[data-placement^='right'] > .tippy-arrow:before { - border-right: 8px solid var(--ui-gray-true-9); -} - [theme='highcontrast'] .sidebar.tippy-box[data-placement^='right'] > .tippy-arrow:before { border-right: 8px solid var(--ui-white); } diff --git a/app/assets/ico/android-chrome-192x192.png b/app/assets/ico/android-chrome-192x192.png index 8f31e405aa2053308dc7f557f95cc7607ef44b9e..236db0e2b8f0d39741d3c7f5690c09bd7d4bf33c 100644 GIT binary patch literal 1922 zcmb7FdpOj27ytf#Gu9x?jB4bP%S35&+ce5;5C-cKv4~u^MlM@BMi#G`X|S7HqLFeh z*1H?VXp>7~+L}@%Gj1!yyRim&gqcxeXlMU^pMBnU|2XG7=kh$~Jm>N`IVXHbs>)i* z0031FcNc%THGC@%;lrFf3BmtnJ@fSg$tU^<6gp&M8&VW6jvmjTHWG8PY z09p!FWKjwLDB?U^oC3asmZykbfk8Ul)#<~!dO5Wh-8w^tTlpg_HSgmG^GuswJ&H9X zSlR?Pjb5S_854A$WZlzcT&+i--S#zd8}JrX*iGY2n3Se&#@qjE`ec$=Hn6hk5&k6d zcS`q4)#ge?F_Iz`b(H%T>n#%Z;%YRT>+Xr)pGp4K9X@7!%i@Dy*W0^+Y5GvM3gb~> z3SM|rWext?fVYF}aX2Ruvs&7Ncj@E=;^gW?T*&h6Of>6!SD z8W-nQWv}<`9(V&9JZdNt&;K;plajK5oKS(eW`zc5@TSH#P7h%FB{@-%{BZc!}K#OntXAk_~UENv*GK!@-llg;*N$pu#@d@~ER3&TTQK(F_T zMnLy6E)NBqgdZ8alny2ED7fpS7eKicg3+oyh5(t|Dlor}2F$pwlmy`cM}Qg-yr3Z& zGZHf%))sa&C<|)J+XdC2rJRcF2ak~qXQ3@mYIEit3S_rfs2YNu_0PB?`mkdZRcq&F zt)Nl0Y^YXG@l0G={g3p9{n>MC5)ys%7^RffdH<6afBf*2pLw4TSh>m`t4_RBCo%J@ zTF$RkXZ?5&9r!NlutIJYyT7r)ioWeyZI@B^s7dg#qNQc?gLOtLvU7{jo%B%VsZK$<5B zX~>^O;;?ww;_0H)snr{H^tocanfk zjv8%C(q{I@$f4i#@y?yauTv1#{RxB&^h2c9l09$*7(O(;ai)2EX=^hl!vqI^=XY6M=7jN*4VD~aw{Ce?=ZR)n(CbK(C z!8z(s<5_QTpkD>i5TXH;A7j8b3o~t;4n6tGTpJ=ttndI?x}0_%g7n+@mbThb3}6b* z(^Z1#UmzJZRAS7Rwi6nFd9Ht}ph9*Q1s>U@J47!|M99N9)H$*_?1+{R{<15QFvco$POvZ_{E(GDGQT<6ywa8nW+*dc6xXuyci~~#-g=w!$H9Ow zG9vg+r|kZ;I<(J6vBTjW!PeS5N$mR~hY**G2WakdXm|!7*#X z*G=2Ms9oH$Xga43&DJ5zp12KmUZ*9J-=7^~CD2WEXQj5fLMh#{KF;Puz4-3MWbT;=}t{r5v6}J zws)cMRie`EqP4wI=AXh*gm1?2hx}qztH3_6L`4#xUiignSTPit2aCV literal 5654 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 diff --git a/app/assets/ico/android-chrome-256x256.png b/app/assets/ico/android-chrome-256x256.png index cc95d0044215f6cd8e6cfba7ac1effda52371387..52848e01967c1126ad7b975041e1fb4966fa91fd 100644 GIT binary patch literal 2510 zcmd6pX*`sB8^^DEOqPt&sFO9sLzZJm8V}i~7(&N#kgX9}qOlaELuRBz*-ApzjuuND zd$yQS<2dM`QYmXmj6#;iKKFC?@_G4u&YS1O{kiVn|N32@&;P~$dtFze-4UwTX6elU zAZBHG$N>Psei0BB#Dd4^Vm~a1gj%|u0T7k=@gZ+T>cA<)TsD=UEn=%;Z#bkxHWRC$^HT&zC`yw3=_siBCc%1qJ8?*_VAxLx9K1 zL^pC;w>Af*X3psc+)|W`g!ic7*rxvU<8u41h{I?x5iD&$K?h-S@IaLKM^x^u_vFcZC+ncDo-q^^6^$>?RX+V@ z4$kk7Pg*E?SJv0`t;B?dSt&>t&LN}Up72)#*3NhjFowliDQmh*-=kHDqN3K9iw=Th zmN19IiJUmYZN8Q_^2OrA%3!qWX1~o>tUqY?k0lIW+oW zOx0T(k7Hja$}~DUP8b#h6J{7Iy~C}{`YlYQGMP9NbS`+Mt6=6}~m zrn~&e9tQel`rCP43=A=g-OSprg6*{E30f1#&1nGU^?nOdHjEOdw-g})#U zrQ*8GnO(8(OlR@TQqE|qaP&9+_|q9YQ{A)SbVIeKwoHFE*gdLm)ZQIB)tC764Q6X2 zC}=5HDfi!oG>WFkp;0HCsr2q|>WD%{f~kkuU($#|Uj4;h8?R(YyD`qj&wBcv3d zH%>Prf6I25Z2k0aU9i;X7VL|(@2#ZxM4w$-m=EWyPZnnGP2F!^3;VrlgNS&!RIWr$T#LHwFce<`z3ENoW)n?w{skw^@l_{5YIj=|-DjhozHa^TaacQ@>9d(5`O>e>5MKE{~7fJ#5 zLg@JEj!puzZ?F8uv#V0z+IEuloQishn7X+PvvOA_Srv9~ui4?5`EA$Hmr*;d{kk+F zj08Pl(u%;>U-fqxAdDW3mE+t-SE+A1`}$TWhLF)LY7hNy8ak@SR~Pl_)`RT^y6iSF zXA_n9mkaVpA$f-GDmRXC>+&LrcJy+J1Q<}4JIFn^bp8MA;&8*xEz^C1gIoG6Kw4Qa zkVPGr>?o0Jx8`>nYv>VSGFA$dcf_$CFQA^-V~<>1wkpX0_7?9Y#^aaY85kq2Utjq#Q*WVBazVxXA-?0!SM4>s!5lbmFW6%3R&gwZ4 zD7k=vRTF0-3@3*gqRIyuc1uGsP20fXYAb`xZDe3IdDQ8lm^elXC%n-!m-9;~m3 zz2duwfEvf%WG#Ng`A26GFdCa_aie{$r0qvaoC&M6_4%u1f*rD*SW0~XtjIM={nQH%Oj};iL-_#P5daG;wFIsD361EmV+PmFX)d9 z1WC&F2>g#D^7#TtHjcHocVbiOWa&&%cc20ghB(|gY>Xto{8eYUyxTTY`Y6uS8wZIZ zpsWIES@3@%=p5!ZV%Y{A!7k8KeO|bZqD0EU5phPt-YT4Rxu T0RIeIzrf1;$e}+dUKjrZxoa#_ literal 8347 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 diff --git a/app/assets/ico/apple-touch-icon.png b/app/assets/ico/apple-touch-icon.png index aeea31ce8754a28959e23880001234a69386f5a0..f05e9c1612db04f85923785d1f4ba88dab243d96 100644 GIT binary patch literal 1840 zcmb7FYcw0!7EXJE&?-UEkSK{swHhs<6ZL3<2(2haI~nilM24o`@1~~FDVK&KEoz1+ zoeUMZF7XbXRz2F%NQ;j5EA^%lLe*n3|7O;@Gi%)+dw*-6eb(CRtnb_3`S(Slqp}i2 z2><{nI}z;NWmxk^faGP_x?A2<28v+>QX~LyK>d%{2YC3Sw(M|Uq`M;yP}!q9Co6zK zSQjh+P?dRLJ3tNqkbmK1kNqlc-_nRJg&C{;bakd}bw89*O|EILupm7SHv;AqGtW&O zRcgl#9V|O(F2_sOG=^UIRaoqX3;)>GTS{VFuKQpb%TQRJpI z&NQNkbt}1xdI~|gjT3-=V1bpea1A>C7?5!h1SwWUa}t<#&STN%9)HH#lEzY;svH z5l)#}O9IgNpO!tJDC}0iq+&_1X*L_4)C;ch=*ZMN?;BVG?|NeyZ0qxN_Do-JG5a_W zdOKr$?pS5Xx?ZH@zncT@6Zq?e5x`Oprb(rDc1luDSKnM2?#6o}I4bP<^Pp@b0kZM2 zBM4zhM}eR`?oBhp);)`YPfqDbpwB59ts{nQ0Dk_(EZv!HU}wiRRHLI#L5o9ui?Sp| znddct%K3TPxdms)rEIqGC>X6~m&~@i;g6s!3iG0UmoUNf_7LGOe4;G~66#bUO=VRf zeKw;+V#C!ttSW9*6&Q1NabY2Xj`zsP$@QiY5EOKu2MXzzlZX{i%ECFkXdt6D?#N?B z2(>r9CT0Ddto*4+TWbLXp$>&?G?)V!7b;B54JlV2!D~d(Fd*YK{tYA5Q-<;f-;^jq z@=1j;s%T5o&8+Tjp03=3U!P67d(E^%M@X+dP`No-7jm!Q-*X2DZ0P+C*ER^f$3GyT zY-%rc>tG!hCLJH2L&&crZdBN0elfd&u%00~#y_69GHd3;4Ol4h8jBX%4RQPrjTqj4 zsooG4?hf-@!q$Ld@S4|#jDf^$}%64*Ta?Ulo_Q4@nHc%61BR;}jr z16S$rD+o5w*3z;m;aNbK=TWRqv3_DblkL_$-bkfe;7rmsr1d?M7y}^nd*5IT`l_T^ zM7|U(#Z!oSO9s%aq~_CsV&Eeg7ix`{0vCrLq^%%H*yr%Edlv7T z?)3s>nOwD%nh;aJV`3BK>}Cv>YYjC0tL=AM%dg3i}s#WI;P)}*LcmxEN%rd3uW7iG$s>%6veE{2XDvKnR+1eElQ zp2G@tqiX0uao@X|xN`!ElOx%rPDvI0P*`?{-PEZFaT(c~%Xo64Kt@sH*+f@O&1;qA zLn_!nSBSWxqzs?NTGjM{BrK&YOoFjf<`Bsb={c3xCxh(;??u*R2LZvV+%{x)ty*#5 z^a-g3?)pdzJaS{kaKCJcXf4~Kfw$xhg%~>P0D*ltQssl_ChaS!&5Jm7tkzu{KdE%d zPZQ{)+IY%u;Of_YtfY%TXdV%HJhKR)xA`ceGt^-A`zVcmeo}h+`H2sm9MvcQgwy_c zF`jo1e8zy1BJ3{Td#6`7$IXH@K{c>CKTpgP!F*S*Db7-Jn$`X~oZtwB@RM(Ui?tb-B@2@`Zisg=m`sX<*7JW z=COkm&95<|3Sbukzw^@aIQ0Lz=il1u|8C@A^b)8vy99>c`<8}pXZ%AKIS9;`s}oOa z$N56_?e#t?Z!j2z+-%+aOhTQEptpJ~tjAVIPpwc!p6dRykNWRDm#8I#o1ub ynHWJ*@j1S;*HxhvWCl=dg<*FDWxd5w1=x-59%Ce6Q0B~|3+E?QI>AwS)Oibbc literal 6116 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 diff --git a/app/assets/ico/favicon-16x16.png b/app/assets/ico/favicon-16x16.png index f7a26b564164405686d5aa98dc2e5ceaa5b1d340..8c60e5d9f450a701a57e86f3e6f5159a274d2672 100644 GIT binary patch literal 368 zcmV-$0gwKPP)4!K~#7FrBg8v z!9W=Oh#%4JtO%>HiW()@B=`wpu`v)o0f|w>sM5K*sxr2nwR`Q{UDBqfJw5S~OMCCj z_wMC;cPT)~7s@aA5%=3Ag})h}5JiEkI9Qeqp7)Hc1p-o|4#PnYSde7}R+}w2j!W@r z;DjXAVY!$^`1H3Ek7$Lh=WEX>4Tx04R}tkv&MmKpe$iQ>7{u1v`j1WT;LSii(JnR-p(LLaorMgUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwH#a9m7b)?7O`%1M2gm(*ckglc4iIW3rdb_PK+|nA z8IOtS%&Hi8MK}5}fEh$(W*Kvmlz`{>x`&UicM+cDeeTcEt7a_*_(bAaW|%hd2JzIU zZE)Tv4zYr)5}y-~nRG$oN3JU_zj4ktSm2oQpi;V zBgX>D&>%Pb;D7MDTPrs)?j{9eK&ouk{0pm<^)Q-Yq4*&oF24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2jvM66c82bWaw!C0096=L_t(2&#lqVDnxM<2k_5m zxRf#(MWUvZ5)wNpYLpik8}bI$Jb+iQPpO)MbL19B91Vr;0>23X;=@#Uxg+LIx&F`Y+xCWNR#>K_Os<;z)`HC2aCAIbk;#y z0(N5zQ#im#-UXWqB|M>ycl75GnhN6>Mg?sl|CO+hI~)du3TAMVXQ_@0)IvTK@IDOr zp|FO93xxA*`W9X5?I>Rj~z0000R`>DzTgP001Be1^@s6=bY090004nX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmKpe$iQ>7{u1v`j1WT;LSii(JnR-p(LLaorMgUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwH#a9m7b)?7O`%1M2gm(*ckglc4iIW3rdb_PK+|nA z8IOtS%&Hi8MK}5}fEh$(W*Kvmlz`{>x`&UicM+cDeeTcEt7a_*_(bAaW|%hd2JzIU zZE)Tv4zYr)5}y-~nRG$oN3JU_zj4ktSm2oQpi;V zBgX>D&>%Pb;D7MDTPrs)?j{9eK&ouk{0pm<^)Q-Yq4*&oF24YJ`L;(K){{a7>y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2jvM66c8|=U_34W00M1EL_t(Y$K}>fh*wn<2k_7P zjm{&PKz+DUf+=WpBZMx(Ny?|DTQ8ZG4UkU7Q-h7kCG!uq@uV#8>!khG0x~-U<|X zI@xLH@NhV(s$Z)l*<9r5L=4yCD1aM9o=z-=x{@kMe!;s7t*s@sTaRET{=gvmV_w$9 zz1~T%KHm6SY>4qcf)DW5Vv$@&zyuy5#ZUMhPZ!vRk~+yC@+jf9Cr_~>hHGt8k|Iy5 z*8kB|>z>@fNj$=zQGNf$y(d{H)1FAOQ1;`KSh+LdEG{)A=?vFPa}dB#ui?6j=^F7v zT#est#Dj&XtJR@`zj409eh!BtafQ*?+cw}!{1$Ck00000NkvXXu0mjf D+RPFA diff --git a/app/assets/ico/favicon.ico b/app/assets/ico/favicon.ico index 28ed661f941580820ed764b4700fa332ae4f04ce..066969400119533a6348a47f6cf3f7d06f849245 100644 GIT binary patch literal 7550 zcmeI1u}i~16voflQE(B#rQp;SbgR%&!O=?Bii?A_bM4%AueR(BQCau*c3wS`j+#p<{SF) zdD;?UWBt#94oeUF#loXycE4B1%gk0ogX(ETo}bmUR;`?9eO@k=Wb3*aX`Fdn*Ok+6 zPiyZVpIWBlqeJaHH@%*Ao{Y(pnNE3`#giwqb(dUzLLEg+MOpcvWHdh|Roj!ynWmXg ze-P(ngW*s7p_OjsMpTTv`@%@h-~>UKKTF>z`pwBqW7`P6+o;=^$q?OvDS zoLY|m;xLiF)fRhxx*w-))GxLETb2oY5B)xyixX2xFd_eNG{P88u1bQb)ofbFgxY4C zPI1DV@Kn$mIrKc zm}u@rTg08J$GmfsOz`zQ4z=GDlXJ_{2y7;p2E#X&KBQIJOwcFpvrJk{cy{5&59vc~ zQcUm<_6OZ|o4v;+hHwjAqn__|*W&smeE;nCzkgRhvCM}P8~-ko{^!R=uoY(_-G2ek C1AKJ= delta 1570 zcmV+-2HpAoI-U}L000310stj200031AOOe(001Tc001R00ssL30RS)q008a<004&9vrEWVv-6122kOyTEQ6c_8DfcfXoG61f~H! zz;u4*c(=O4skhXt2vr ztN{)ImjSg2#a%!*uosvDd;shMOvAKiR5lKOONUKLrc`5?wr^B*&D{u1z!Sh~QB1cY zp)dS`O1^7FLKeuAz;yI>el3dE4bvWfc71PgNR4fOj8nPOoCfR%>VSG+DzH5|FBHo* z#)<@Kd-VDyU_Nj!5CM+(e6rkVw8L!pB=-WOHVo4aqfb#P%7ABqhk<5b75eCBvvm~M zir%(#j0TniD}ZCJoo@j|=#0({^{;e4sVXyuLTv*cPc!BRlFmAmV+4VOTXG@b+U&O{ zaBehz5^7IoJCwi9zsHFF^fv1Y`G6qLCoJ`HKn7swFUPBH`<1lIV)% zB$W?Mf^0}Oyq+%qq{)m~w+HbD7`5ed!q?13M0-bHYa71OGRYw2`piDyXSeG|wDyR9 zTTUy~mF_dgFzpsA63Qo*nGhin>!I}8n{ax&={ir_ zbnHrQUmLL0t#<>H&?$>IUj6`1XFI1}ehO!QU4Oq-x8BKhoF%2Cw^K{Oa^N2uoRPHp9tLA_R_)9QMd+_#&qrfMHIj={5B-;L= z^oEJVesQSUb%0n)3j|642J4hn6UH#@Cg8>_b`(0-`VJk4F9Bu&t>E-{y+S&jZN!_$ z0f^HTSAp>tkhGC4%zTW#sic186go{l1uO(EM(67<1EXEp3V_-H97bPC&l-wYbZ#g) zS$s8%Kq;JtcT_e~Ci-$YKRGFX;C|qC;IS04HNYcidDsf779F^ofj5BGp-82|seik_ zo^krDNXS9w-iLucm*9D6gpvpXF90jiIo3JAT;MHWW?a05#GIr6I(Du)AyAF>t=E8M zSqSBW0ILJaH=}5zDwb_IU+HW2L9~xeDZq9BSXk9CINef-ILhut#dD{BVHvYGOuHPN ze@`xeNIE`3vA~)a@-!%Ir3AF|7K0GL?}fzdL8Pj*qTgC1LI77IIRacB3?3j#0M8*K z59XkM6?wuSQtnTNABx4u#YJ8RWLw%-fPY8Mr5{nR12RZ;cl^-|JOFeQfzWYL{N!~| zRzV!w5W^8Q0l1F=rLOgVXxj!Bh~m?zM@bk`rQIJHA>cy>;$bTGqJ{Qpv{O6iOyU_F z=PRqm`?(or=n(fWpIU|v&J%z?fjU86>g#Hc`O7K9iujg7Y#@Ns!TKBMP6= zfj9;@R>a%ZoIx@19~u9w_KX$k!T - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + diff --git a/app/assets/ico/mstile-150x150.png b/app/assets/ico/mstile-150x150.png index 5e7eb6873cdef750103527c543ff88b06cdbe846..f48374538eec40524b252c9c57d741c46ad25334 100644 GIT binary patch literal 1535 zcmah}Yd8}M7@lf1h8>E^lgpN(hQh+Zrpa}hr!CW@uu_B*F|wqg9l4}jT1w%#jAYo{ zFLT>Eaw$6}x6^Vtxs+8SF$*(i{W^a-r{{U!?|t6y`MzJ@^S#L@+?`dFw3Gk65<6ZKmLImE~9#Gl8M<_R20?=4A0KmQr zmXd$~0Pvox1KJ~6K{SRwzK5`@V<9x{`B=;w^Du`_czn4UqziFBHPKLqsSn(K9#XeW zRIs3jKqGf#1wrt~Ztp*8r6j}|hWksDV-TcytBD6k{Il@ZHWQrr*7c1{Y=cU6$wr$b zDr)>u&JKjNb(?;jAVCisP&dQlwQDkdJ5_90i18LNtEdx`B!!)NMh||7Xu`qaz(Iyj zmD>w!!!}}3g%{Yrgk0{E)!fuC_2eoY9eFr4RrUT5 zBV)a~KF`CSHWPQ};?;IeZu`UwCw5weXtvbN#L~(Xwq-_o#LP^e4Kpew=UkT# zJRNO~Si|f7#DN;UCvS<7Eiivruif~*(=`k+Gws6AB@`r%zx#Hb_j&z^cVJT4a)N8)9 zbfKOo`h;5FXq6QSJ*HNk0M_|o#%qwUJ%RbKlOzSL=@H3XpUr%Kx*TFaW?T1D|OF=r2)U$F?$+a590j?2#$tOuj?16d7dNJehDj9C++Lv1u{Tz zXx<$>j7f{OmZq`P*~|W8Ls#fDIzT08s7LTre(ldarQkW$y-;Siv2j(SE&Cx0wj3tL zwbg$~V!;?Viub8pXQJ8{9r~o|tEAaYvBJ)j5Nq4qrkx~5`%rV4G}We3S1D45^mA#^ zprGnwbq$OcRU>q9htG`(Q=}WEBQ~l9CCeb2G+i8tLPc z)sjygGg-VlQEe$H>2gj_&XPZKnbM59>7XT>u{^b(=jcLN5|GT@+pcXF_o^qoAf0j`ej4wd$P3I71a)5qli literal 8697 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 diff --git a/app/assets/ico/safari-pinned-tab.svg b/app/assets/ico/safari-pinned-tab.svg index 79ce7b6fa..d0509a572 100644 --- a/app/assets/ico/safari-pinned-tab.svg +++ b/app/assets/ico/safari-pinned-tab.svg @@ -1 +1,6 @@ - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/app/assets/images/logo.png b/app/assets/images/logo.png deleted file mode 100644 index 2e46594f291f5e2e3541c3c8fdd240afb7b70217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5074 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 diff --git a/app/assets/images/logo_alt.png b/app/assets/images/logo_alt.png deleted file mode 100644 index a6c6707ca9265d78e8ab3021fd865e83caa137aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11073 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/app/assets/images/logo_alt_black.svg b/app/assets/images/logo_alt_black.svg new file mode 100644 index 000000000..d9243b464 --- /dev/null +++ b/app/assets/images/logo_alt_black.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/app/assets/images/logo_ico.png b/app/assets/images/logo_ico.png deleted file mode 100644 index b4bfd2924fd4ebd5f2834a4fdcf2d6719b15f0d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4253 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 diff --git a/app/assets/images/purple-gradient.svg b/app/assets/images/purple-gradient.svg new file mode 100644 index 000000000..0b3bc7160 --- /dev/null +++ b/app/assets/images/purple-gradient.svg @@ -0,0 +1,522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/index.html b/app/index.html index 370070b48..52b9b5d10 100644 --- a/app/index.html +++ b/app/index.html @@ -20,7 +20,7 @@ - + @@ -47,7 +47,10 @@
- +
+ + +
diff --git a/app/portainer/views/auth/auth.html b/app/portainer/views/auth/auth.html index 09dadf050..2504141a7 100644 --- a/app/portainer/views/auth/auth.html +++ b/app/portainer/views/auth/auth.html @@ -4,7 +4,10 @@
- +
+ + +
diff --git a/app/portainer/views/init/admin/initAdmin.html b/app/portainer/views/init/admin/initAdmin.html index b5cfcfeb4..afff165b2 100644 --- a/app/portainer/views/init/admin/initAdmin.html +++ b/app/portainer/views/init/admin/initAdmin.html @@ -5,7 +5,10 @@
- +
+ + +
diff --git a/app/portainer/views/logout/logout.html b/app/portainer/views/logout/logout.html index fe9b2513d..95299d5d0 100644 --- a/app/portainer/views/logout/logout.html +++ b/app/portainer/views/logout/logout.html @@ -4,7 +4,10 @@
- +
+ + +
diff --git a/app/react/components/InformationPanel.tsx b/app/react/components/InformationPanel.tsx index b5c9dafc9..f25afadba 100644 --- a/app/react/components/InformationPanel.tsx +++ b/app/react/components/InformationPanel.tsx @@ -19,7 +19,7 @@ export function InformationPanel({ children, }: PropsWithChildren) { return ( - +
{title && ( diff --git a/app/react/portainer/account/AccountView/theme-options.tsx b/app/react/portainer/account/AccountView/theme-options.tsx index c76ddaa2f..21c1d00d9 100644 --- a/app/react/portainer/account/AccountView/theme-options.tsx +++ b/app/react/portainer/account/AccountView/theme-options.tsx @@ -7,28 +7,24 @@ export const options = [ id: 'light', icon: , label: 'Light Theme', - description: 'Default color mode', value: 'light', }, { id: 'dark', icon: , label: 'Dark Theme', - description: 'Dark color mode', value: 'dark', }, { id: 'highcontrast', icon: , label: 'High Contrast', - description: 'High contrast color mode', value: 'highcontrast', }, { id: 'auto', icon: , - label: 'Auto', - description: 'Sync with system theme', + label: 'System Theme', value: 'auto', }, ]; diff --git a/app/react/sidebar/EnvironmentSidebar.module.css b/app/react/sidebar/EnvironmentSidebar.module.css index 56165048c..2400d635a 100644 --- a/app/react/sidebar/EnvironmentSidebar.module.css +++ b/app/react/sidebar/EnvironmentSidebar.module.css @@ -1,12 +1,11 @@ .root { background-color: var(--bg-sidebar-nav-color); - border-color: var(--border-sidebar-color); } .closeBtn { - background-color: var(--bg-btn-default-color); + background-color: transparent; } .closeBtn:hover { - background-color: var(--bg-btn-default-hover-color); + background-color: var(--graphite-500); } diff --git a/app/react/sidebar/EnvironmentSidebar.tsx b/app/react/sidebar/EnvironmentSidebar.tsx index 2e51b449c..bea5f86c1 100644 --- a/app/react/sidebar/EnvironmentSidebar.tsx +++ b/app/react/sidebar/EnvironmentSidebar.tsx @@ -36,7 +36,7 @@ export function EnvironmentSidebar() { } return ( -
+
{environment ? ( ) : ( @@ -151,7 +151,7 @@ function Title({ environment, onClear }: TitleProps) { onClick={onClear} className={clsx( styles.closeBtn, - 'ml-auto mr-2 flex h-5 w-5 items-center justify-center rounded border-0 p-1 text-sm text-gray-5 transition-colors duration-200 hover:text-white be:text-gray-6 be:hover:text-white' + 'ml-auto mr-2 flex h-5 w-5 items-center justify-center rounded border-0 p-1 text-sm text-white transition-colors duration-200' )} > diff --git a/app/react/sidebar/Footer/Footer.tsx b/app/react/sidebar/Footer/Footer.tsx index 0c6636a3e..7374857c5 100644 --- a/app/react/sidebar/Footer/Footer.tsx +++ b/app/react/sidebar/Footer/Footer.tsx @@ -7,7 +7,6 @@ import { UpdateNotification } from './UpdateNotifications'; import { BuildInfoModalButton } from './BuildInfoModal'; import '@reach/dialog/styles.css'; import styles from './Footer.module.css'; -import Logo from './portainer_logo.svg?c'; export function Footer() { return isBE ? : ; @@ -19,7 +18,6 @@ function CEFooter() { - Community Edition @@ -43,7 +41,7 @@ function BEFooter() { function FooterContent({ children }: PropsWithChildren) { return ( -
+
{children}
); diff --git a/app/react/sidebar/Footer/portainer_logo.svg b/app/react/sidebar/Footer/portainer_logo.svg deleted file mode 100644 index 1bf390370..000000000 --- a/app/react/sidebar/Footer/portainer_logo.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/react/sidebar/Header.module.css b/app/react/sidebar/Header.module.css index 002dad966..82a002e8a 100644 --- a/app/react/sidebar/Header.module.css +++ b/app/react/sidebar/Header.module.css @@ -1,9 +1,5 @@ .logo { display: inline; max-height: 55px; - max-width: min(100%, 230px); -} - -.collapseBtn:hover { - background-color: var(--bg-btn-default-hover-color); + max-width: min(100%, 220px); } diff --git a/app/react/sidebar/Header.tsx b/app/react/sidebar/Header.tsx index 60b24b883..b69aa7d3a 100644 --- a/app/react/sidebar/Header.tsx +++ b/app/react/sidebar/Header.tsx @@ -2,12 +2,13 @@ import { ChevronsLeft, ChevronsRight } from 'lucide-react'; import clsx from 'clsx'; import { isBE } from '@/react/portainer/feature-flags/feature-flags.service'; -import smallLogo from '@/assets/ico/logomark.svg'; import { Link } from '@@/Link'; import fullLogoBE from './portainer_logo-BE.svg'; import fullLogoCE from './portainer_logo-CE.svg'; +import smallLogoBE from './logomark-BE.svg'; +import smallLogoCE from './logomark-CE.svg'; import { useSidebarState } from './useSidebarState'; import styles from './Header.module.css'; @@ -20,7 +21,7 @@ export function Header({ logo: customLogo }: Props) { return (
-
+
); diff --git a/app/react/sidebar/SidebarItem/SidebarItem.tsx b/app/react/sidebar/SidebarItem/SidebarItem.tsx index 96fd5cbc8..7208516f3 100644 --- a/app/react/sidebar/SidebarItem/SidebarItem.tsx +++ b/app/react/sidebar/SidebarItem/SidebarItem.tsx @@ -59,7 +59,7 @@ export function SidebarItem({ return ( +
{title} -
+
{children}
diff --git a/app/react/sidebar/SidebarItem/SidebarTooltip.tsx b/app/react/sidebar/SidebarItem/SidebarTooltip.tsx index b9a2d11d4..ec25ffd99 100644 --- a/app/react/sidebar/SidebarItem/SidebarTooltip.tsx +++ b/app/react/sidebar/SidebarItem/SidebarTooltip.tsx @@ -8,7 +8,7 @@ type Props = { export function SidebarTooltip({ children, content }: Props) { return ( > = {}, options: TransitionOptions = {}, pathOptions: PathOptions = { diff --git a/app/react/sidebar/logomark-BE.svg b/app/react/sidebar/logomark-BE.svg new file mode 100644 index 000000000..beead5989 --- /dev/null +++ b/app/react/sidebar/logomark-BE.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/app/react/sidebar/logomark-CE.svg b/app/react/sidebar/logomark-CE.svg new file mode 100644 index 000000000..1ed2ea259 --- /dev/null +++ b/app/react/sidebar/logomark-CE.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/app/react/sidebar/portainer_logo-BE.svg b/app/react/sidebar/portainer_logo-BE.svg index ed7ab076d..ad9762aa8 100644 --- a/app/react/sidebar/portainer_logo-BE.svg +++ b/app/react/sidebar/portainer_logo-BE.svg @@ -1,51 +1,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + diff --git a/app/react/sidebar/portainer_logo-CE.svg b/app/react/sidebar/portainer_logo-CE.svg index 7b6c83a00..707c7b1a7 100644 --- a/app/react/sidebar/portainer_logo-CE.svg +++ b/app/react/sidebar/portainer_logo-CE.svg @@ -1,68 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + +