From 4c5163981a874ddca72c1f977f3020957fca6c8b Mon Sep 17 00:00:00 2001 From: jominki354 Date: Fri, 8 May 2026 19:22:56 +0900 Subject: [PATCH 01/24] default set --- selfdrive/carrot/web/css/base.css | 6 ++ selfdrive/carrot/web/css/pages/settings.css | 86 +++++++++++++++++++++ selfdrive/carrot/web/css/responsive.css | 14 ++++ selfdrive/carrot/web/index.html | 51 ++++++++---- selfdrive/carrot/web/js/pages/setting.js | 56 +++++++++++++- selfdrive/carrot/web/js/shared/i18n.js | 14 +++- selfdrive/carrot/web/js/shared/ui/dialog.js | 19 ++++- selfdrive/carrot/web/js/translations/en.js | 3 + selfdrive/carrot/web/js/translations/fr.js | 3 + selfdrive/carrot/web/js/translations/ja.js | 3 + selfdrive/carrot/web/js/translations/ko.js | 3 + selfdrive/carrot/web/js/translations/zh.js | 3 + 12 files changed, 238 insertions(+), 23 deletions(-) diff --git a/selfdrive/carrot/web/css/base.css b/selfdrive/carrot/web/css/base.css index 5bbdd1c01d..cb38a4da04 100644 --- a/selfdrive/carrot/web/css/base.css +++ b/selfdrive/carrot/web/css/base.css @@ -322,6 +322,12 @@ body:has(.page-transitioning) { pointer-events: auto; } +.page-fab-layer .setting-fab-menu .fab { + position: static; + top: auto; + right: auto; +} + .fab::before { content: none; } diff --git a/selfdrive/carrot/web/css/pages/settings.css b/selfdrive/carrot/web/css/pages/settings.css index 61eb78e645..5ab24f7e21 100644 --- a/selfdrive/carrot/web/css/pages/settings.css +++ b/selfdrive/carrot/web/css/pages/settings.css @@ -129,6 +129,92 @@ -webkit-backdrop-filter: blur(6px) saturate(108%); } +.page-fab-layer--setting .setting-fab-menu { + --fab-size: 68px; + position: absolute; + top: calc(var(--app-vv-height, 100dvh) - var(--nav-bar-height) - env(safe-area-inset-bottom, 0px) - var(--fab-size, 68px) - 10px - var(--sp-lg)); + right: 0; + z-index: 55; + display: flex; + flex-direction: column; + align-items: flex-end; + pointer-events: auto; +} + +.setting-fab-actions { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 10px; + margin-bottom: 10px; + opacity: 0; + transform: translateY(8px) scale(0.98); + transform-origin: right bottom; + transition: opacity 0.16s ease, transform 0.16s ease; + pointer-events: none; +} + +.setting-fab-actions[hidden] { + display: none !important; +} + +.setting-fab-menu.is-open .setting-fab-actions { + opacity: 1; + transform: translateY(0) scale(1); + pointer-events: auto; + visibility: visible; +} + +.setting-fab-action { + min-width: 136px; + min-height: 44px; + display: inline-grid; + grid-template-columns: 20px minmax(0, 1fr); + align-items: center; + gap: 10px; + padding: 0 14px; + border: 1px solid color-mix(in srgb, var(--md-outline-var) 84%, transparent); + border-radius: 999px; + background: color-mix(in srgb, var(--md-surface-cont) 92%, #000); + color: var(--md-on-surface); + font-size: var(--fs-body-sm); + font-weight: 800; + line-height: 1; + text-align: left; + box-shadow: 0 12px 28px rgba(0, 0, 0, 0.26); + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} + +.setting-fab-action svg { + width: 20px; + height: 20px; + color: var(--md-primary); +} + +.setting-fab-action span { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.setting-fab-action:active { + background: color-mix(in srgb, var(--md-primary) 12%, var(--md-surface-cont)); +} + +.setting-fab-action:disabled, +.setting-fab-action[aria-disabled="true"] { + color: color-mix(in srgb, var(--md-on-surface-var) 64%, transparent); + cursor: default; + opacity: 0.72; +} + +.setting-fab-action:disabled svg, +.setting-fab-action[aria-disabled="true"] svg { + color: color-mix(in srgb, var(--md-on-surface-var) 72%, transparent); +} + .setting-search-panel { --setting-search-form-width: clamp(320px, 42vw, 520px); --setting-search-results-width: min(72vw, 760px); diff --git a/selfdrive/carrot/web/css/responsive.css b/selfdrive/carrot/web/css/responsive.css index 89ec7c690d..f8ebe58bbf 100644 --- a/selfdrive/carrot/web/css/responsive.css +++ b/selfdrive/carrot/web/css/responsive.css @@ -45,6 +45,11 @@ top: calc(var(--app-vv-height, 100dvh) - var(--nav-bar-height-desktop) - env(safe-area-inset-bottom, 0px) - var(--fab-size) - 12px - var(--sp-lg)); } + .page-fab-layer--setting .setting-fab-menu { + --fab-size: 68px; + top: calc(var(--app-vv-height, 100dvh) - var(--nav-bar-height-desktop) - env(safe-area-inset-bottom, 0px) - var(--fab-size) - 12px - var(--sp-lg)); + } + } /* ── Mobile tweaks ────────────────────────────────────────── */ @@ -60,6 +65,10 @@ font-size: 11px; } + .page-fab-layer--setting .setting-fab-menu { + --fab-size: 62px; + } + } @media (orientation: landscape) { @@ -138,4 +147,9 @@ top: calc(var(--app-vv-height, 100dvh) - env(safe-area-inset-bottom, 0px) - var(--fab-size) - 18px); } + .page-fab-layer--setting .setting-fab-menu { + --fab-size: 56px; + top: calc(var(--app-vv-height, 100dvh) - env(safe-area-inset-bottom, 0px) - var(--fab-size) - 18px); + } + } diff --git a/selfdrive/carrot/web/index.html b/selfdrive/carrot/web/index.html index 066ae911fd..22b9029921 100644 --- a/selfdrive/carrot/web/index.html +++ b/selfdrive/carrot/web/index.html @@ -72,15 +72,15 @@ - + - + - + @@ -119,12 +119,28 @@

Mode From 5da7feb65b3183d54bd8cde8bda75fb013cbe29b Mon Sep 17 00:00:00 2001 From: jominki354 Date: Fri, 8 May 2026 19:37:58 +0900 Subject: [PATCH 04/24] ui f --- selfdrive/carrot/web/css/pages/settings.css | 4 +- selfdrive/carrot/web/css/responsive.css | 18 +++++--- selfdrive/carrot/web/index.html | 6 +++ selfdrive/carrot/web/js/pages/setting.js | 48 ++++++++++++++++++++- selfdrive/carrot/web/js/shared/i18n.js | 5 +++ selfdrive/carrot/web/js/translations/en.js | 4 ++ selfdrive/carrot/web/js/translations/fr.js | 4 ++ selfdrive/carrot/web/js/translations/ja.js | 4 ++ selfdrive/carrot/web/js/translations/ko.js | 4 ++ selfdrive/carrot/web/js/translations/zh.js | 4 ++ 10 files changed, 92 insertions(+), 9 deletions(-) diff --git a/selfdrive/carrot/web/css/pages/settings.css b/selfdrive/carrot/web/css/pages/settings.css index d616b5df5d..026ad1f31d 100644 --- a/selfdrive/carrot/web/css/pages/settings.css +++ b/selfdrive/carrot/web/css/pages/settings.css @@ -220,7 +220,7 @@ .fab--setting-menu { background: #ffab66; border-color: #ffab66; - color: #fff; + color: #111; box-shadow: 0 12px 28px rgba(255, 135, 58, 0.22); } @@ -228,7 +228,7 @@ .fab--setting-menu:active { background: #ff9c4a; border-color: #ff9c4a; - color: #fff; + color: #111; box-shadow: 0 12px 30px rgba(255, 135, 58, 0.3); } diff --git a/selfdrive/carrot/web/css/responsive.css b/selfdrive/carrot/web/css/responsive.css index e27085bf20..ec27c9ee86 100644 --- a/selfdrive/carrot/web/css/responsive.css +++ b/selfdrive/carrot/web/css/responsive.css @@ -150,15 +150,21 @@ .page-fab-layer--setting .setting-fab-menu { --fab-size: 56px; right: auto; - left: calc(var(--nav-rail-width) + 18px); - bottom: calc(18px + env(safe-area-inset-bottom, 0px)); + left: calc( + var(--nav-rail-width) + + var(--setting-landscape-page-inset, 24px) + + var(--setting-landscape-left-width, 260px) - + var(--fab-size) - + 18px + ); + bottom: calc(var(--setting-landscape-page-inset, 24px) + env(safe-area-inset-bottom, 0px)); } .setting-fab-actions { - right: auto; - left: 0; - align-items: flex-start; - transform-origin: left bottom; + right: 0; + left: auto; + align-items: flex-end; + transform-origin: right bottom; } } diff --git a/selfdrive/carrot/web/index.html b/selfdrive/carrot/web/index.html index e8dfc7c4bb..0b3bace61a 100644 --- a/selfdrive/carrot/web/index.html +++ b/selfdrive/carrot/web/index.html @@ -128,6 +128,12 @@

Mode 프로필 추가 +