diff --git a/app/assets/stylesheets/administrate/components/_buttons.scss b/app/assets/stylesheets/administrate/components/_buttons.scss index a0c3699ba..1fceddc1f 100644 --- a/app/assets/stylesheets/administrate/components/_buttons.scss +++ b/app/assets/stylesheets/administrate/components/_buttons.scss @@ -9,7 +9,7 @@ input[type='submit']:not(.reset-base), border-radius: $base-border-radius; color: $white; cursor: pointer; - display: inline-block; + display: inline-flex; font-size: $font-size-small; -webkit-font-smoothing: antialiased; font-weight: $font-weight-medium; diff --git a/app/javascript/dashboard/assets/scss/_date-picker.scss b/app/javascript/dashboard/assets/scss/_date-picker.scss index 2fa577673..b22381ea0 100644 --- a/app/javascript/dashboard/assets/scss/_date-picker.scss +++ b/app/javascript/dashboard/assets/scss/_date-picker.scss @@ -10,7 +10,7 @@ &.no-margin { .mx-input { - @apply mb-0; + margin-bottom: 0 !important; } } diff --git a/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss b/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss index 2f9c35c51..ffcfca545 100644 --- a/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss +++ b/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss @@ -1,13 +1,13 @@ @mixin label-multiselect-hover { &::after { - @apply text-woot-600 dark:text-woot-600; + @apply text-n-brand; } &:hover { - @apply bg-slate-50 dark:bg-slate-700; + @apply bg-n-slate-3; &::after { - @apply text-woot-500 dark:text-woot-500; + @apply text-n-blue-text; } } } @@ -18,20 +18,16 @@ } &.multiselect--disabled { - @apply opacity-50 border border-slate-200 dark:border-slate-600 rounded-md cursor-not-allowed; + @apply opacity-50 rounded-lg cursor-not-allowed pointer-events-auto; .multiselect__select { - @apply cursor-not-allowed bg-white dark:bg-slate-900 rounded-md; - } - - .multiselect__tags { - @apply border-0; + @apply cursor-not-allowed bg-transparent rounded-lg; } } .multiselect--active { > .multiselect__tags { - @apply border-woot-500 dark:border-woot-500; + @apply outline-n-blue-border; } } @@ -44,7 +40,7 @@ } .multiselect__content-wrapper { - @apply bg-white dark:bg-slate-900 border border-solid border-slate-200 dark:border-slate-600 text-slate-800 dark:text-slate-100; + @apply bg-n-alpha-black2 text-n-slate-12 backdrop-blur-[100px] border-0 border-none outline outline-1 outline-n-weak rounded-b-lg; } .multiselect__content { @@ -61,15 +57,19 @@ @apply mb-0; } + &::after { + @apply bottom-0 flex items-center justify-center text-center; + } + &.multiselect__option--highlight { - @apply bg-white dark:bg-slate-800 text-slate-800 dark:text-slate-100; + @apply bg-n-alpha-black2 text-n-slate-12; } &.multiselect__option--highlight:hover { - @apply bg-woot-50 dark:bg-woot-600 text-slate-800 dark:text-slate-100; + @apply bg-n-brand/10 text-n-slate-12; &::after { - @apply bg-woot-50 dark:bg-woot-600 text-slate-600 dark:text-slate-200; + @apply bg-transparent text-center text-n-slate-12; } } @@ -78,17 +78,17 @@ } &.multiselect__option--selected { - @apply bg-woot-50 dark:bg-woot-600 text-slate-800 dark:text-slate-100; + @apply bg-n-brand/20 text-n-slate-12; + + &::after { + @apply bg-transparent; + } &.multiselect__option--highlight:hover { - @apply bg-woot-75 dark:bg-woot-600; - - &::after { - @apply bg-transparent; - } + @apply bg-transparent; &::after:hover { - @apply text-slate-800 dark:text-slate-100; + @apply text-n-slate-12 bg-transparent; } } } @@ -96,23 +96,27 @@ } .multiselect__tags { - @apply bg-white dark:bg-slate-900 border border-solid border-slate-200 dark:border-slate-600 m-0 min-h-[2.875rem] pt-0; + @apply bg-n-alpha-black2 border-0 grid items-center w-full border-none outline-1 outline outline-n-weak hover:outline-n-slate-6 m-0 min-h-[2.875rem] rounded-lg pt-0; input { - @apply border-0 border-none; + @apply border-0 border-none bg-transparent dark:bg-transparent text-n-slate-12 placeholder:text-n-slate-10; } } + .multiselect__spinner { + background-color: transparent; + } + .multiselect__tags-wrap { @apply inline-block leading-none mt-1; } .multiselect__placeholder { - @apply text-slate-400 dark:text-slate-400 font-normal pt-3; + @apply text-n-slate-10 font-normal pt-3; } .multiselect__tag { - @apply bg-slate-50 dark:bg-slate-800 mt-1 text-slate-800 dark:text-slate-100 pr-6 pl-2.5 py-1.5; + @apply bg-n-alpha-white mt-1 text-n-slate-12 pr-6 pl-2.5 py-1.5; } .multiselect__tag-icon { @@ -125,7 +129,7 @@ } .multiselect__single { - @apply bg-white dark:bg-slate-900 text-slate-800 dark:text-slate-100 inline-block mb-0 py-3 px-2.5 overflow-hidden whitespace-nowrap text-ellipsis; + @apply bg-transparent text-n-slate-12 inline-block mb-0 py-3 px-2.5 overflow-hidden whitespace-nowrap text-ellipsis; } } @@ -143,11 +147,11 @@ } > .multiselect__tags { - @apply border-transparent; + @apply outline-transparent; } &.multiselect--active > .multiselect__tags { - @apply border-woot-500 dark:border-woot-500; + @apply outline-n-blue-border; } } } @@ -179,7 +183,7 @@ .multiselect__tags, .multiselect__input, .multiselect { - @apply bg-white dark:bg-slate-900 text-slate-800 dark:text-slate-100 rounded-[5px] text-sm min-h-[2.5rem]; + @apply text-n-slate-12 rounded-lg text-sm min-h-[2.5rem]; } .multiselect__input { @@ -187,7 +191,7 @@ } .multiselect__single { - @apply items-center flex m-0 text-sm max-h-[2.375rem] text-slate-800 dark:text-slate-100 bg-white dark:bg-slate-900 py-3 px-0.5; + @apply items-center flex m-0 text-sm max-h-[2.375rem] bg-transparent text-n-slate-12 py-3 px-0.5; } .multiselect__placeholder { @@ -208,6 +212,24 @@ } } +.multiselect--disabled { + background-color: rgba(var(--black-alpha-2)) !important; + + .multiselect__tags { + @apply hover:outline-n-weak; + } +} + +.multiselect--active { + .multiselect__select::before { + @apply top-[62%]; + } +} + +.multiselect__select::before { + top: 60% !important; +} + .multiselect-wrap--medium { .multiselect__tags, .multiselect__input { @@ -217,16 +239,16 @@ .multiselect__tags, .multiselect__input, .multiselect { - @apply bg-white dark:bg-slate-900 text-slate-800 dark:text-slate-100 text-sm h-12 min-h-[3rem]; + @apply bg-n-alpha-black2 text-n-slate-12 text-sm h-12 min-h-[3rem]; } .multiselect__input { @apply h-[2.875rem] min-h-[2.875rem]; - margin-bottom: 0px !important; + margin-bottom: 0 !important; } .multiselect__single { - @apply items-center flex m-0 text-sm py-1 px-0.5 text-slate-800 dark:text-slate-100 bg-white dark:bg-slate-900; + @apply items-center flex m-0 text-sm py-1 px-0.5 bg-transparent text-n-slate-12; } .multiselect__placeholder { diff --git a/app/javascript/dashboard/assets/scss/widgets/_base.scss b/app/javascript/dashboard/assets/scss/widgets/_base.scss index a8da23f3b..da3cf2e6d 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_base.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_base.scss @@ -1,22 +1,22 @@ // scss-lint:disable QualifyingElement // Base typography +// ------------------------- h1, h2, h3, h4, h5, h6 { - @apply font-medium text-slate-800 dark:text-slate-50; + @apply font-medium text-n-slate-12; } p { text-rendering: optimizeLegibility; - @apply mb-2 leading-[1.65] text-sm; a { - @apply text-woot-500 dark:text-woot-500 cursor-pointer; + @apply text-n-brand dark:text-n-brand cursor-pointer; } } @@ -41,64 +41,82 @@ dl:not(.reset-base) { } // Form elements +// ------------------------- label { - @apply text-slate-800 dark:text-slate-200 block m-0 leading-7 text-sm font-medium; - - &.error { - input { - @apply mb-1; - } - } + @apply text-n-slate-12 block m-0 leading-7 text-sm font-medium; } .input-wrap, .help-text { - @apply text-slate-800 dark:text-slate-100 text-sm font-medium; - - .help-text { - @apply font-normal text-slate-600 dark:text-slate-400; - } + @apply text-n-slate-11 text-sm font-medium; } // Focus outline removal .button, -textarea, -input:focus { +textarea { outline: none; } -// Inputs -input[type='text']:not(.reset-base), -input[type='number']:not(.reset-base), -input[type='password']:not(.reset-base), -input[type='date']:not(.reset-base), -input[type='email']:not(.reset-base), -input[type='url']:not(.reset-base) { - @apply block box-border w-full transition-colors focus:border-woot-500 dark:focus:border-woot-600 duration-[0.25s] ease-[ease-in-out] h-10 appearance-none mx-0 mt-0 mb-4 p-2 rounded-md text-base font-normal bg-white dark:bg-slate-900 focus:bg-white focus:dark:bg-slate-900 text-slate-900 dark:text-slate-100 border border-solid border-slate-200 dark:border-slate-600; +// Field base styles (Input, TextArea, Select) +@layer components { + .field-base { + @apply block box-border w-full transition-colors duration-[0.25s] ease-[ease-in-out] focus:outline-n-brand dark:focus:outline-n-brand appearance-none mx-0 mt-0 mb-4 py-2 px-3 rounded-lg text-base font-normal bg-n-alpha-black2 placeholder:text-n-slate-10 dark:placeholder:text-n-slate-10 text-n-slate-12 border-none outline outline-1 outline-n-weak dark:outline-n-weak hover:outline-n-slate-6 dark:hover:outline-n-slate-6; + } - &[disabled] { - @apply bg-slate-200 dark:bg-slate-700 text-slate-400 dark:text-slate-400 border-slate-200 dark:border-slate-600 cursor-not-allowed; + .field-disabled { + @apply opacity-50 outline-n-weak dark:outline-n-weak cursor-not-allowed; + } + + .field-error { + @apply outline outline-1 outline-n-ruby-8 dark:outline-n-ruby-8 hover:outline-n-ruby-9 dark:hover:outline-n-ruby-9 disabled:outline-n-ruby-8 dark:disabled:outline-n-ruby-8; } } -input[type='file'] { - @apply bg-n-background leading-[1.15] mb-4; +$form-input-selector: "input[type]:not([type='file']):not([type='checkbox']):not([type='radio']):not([type='button']):not([type='submit']):not([type='reset']):not(.reset-base):not(.multiselect__input):not(.no-margin)"; + +#{$form-input-selector} { + @apply field-base h-10; + + &[disabled] { + @apply field-disabled; + } + + &.error { + @apply field-error mb-1; + } +} + +input[type='file']:not(.multiselect__input) { + @apply leading-[1.15] mb-4 border-0 bg-transparent text-sm; } // Select select { background-image: url("data:image/svg+xml;utf8,"); - background-position: right -1rem center; background-size: 9px 6px; - @apply h-10 mx-0 mt-0 mb-4 bg-origin-content focus-visible:outline-none bg-no-repeat py-2 pr-6 pl-2 rounded-md w-full text-base font-normal appearance-none transition-colors focus:border-woot-500 dark:focus:border-woot-600 duration-[0.25s] ease-[ease-in-out] bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-100 border border-solid border-slate-200 dark:border-slate-600; + + @apply field-base h-10 bg-origin-content focus-visible:outline-none bg-no-repeat py-2 ltr:bg-[right_-1rem_center] rtl:bg-[left_-1rem_center] ltr:pr-6 rtl:pl-6 rtl:pr-3 ltr:pl-3; + + &[disabled] { + @apply field-disabled; + } } // Textarea textarea { - @apply block box-border w-full transition-colors focus:border-woot-500 dark:focus:border-woot-600 duration-[0.25s] ease-[ease-in-out] h-16 appearance-none mx-0 mt-0 mb-4 p-2 rounded-md text-base font-normal bg-white dark:bg-slate-900 focus:bg-white focus:dark:bg-slate-900 text-slate-900 dark:text-slate-100 border border-solid border-slate-200 dark:border-slate-600; + @apply field-base h-16; &[disabled] { - @apply bg-slate-200 dark:bg-slate-700 text-slate-400 dark:text-slate-400 border-slate-200 dark:border-slate-600 cursor-not-allowed; + @apply field-disabled; + } +} + +// Add mb-1 when .help-text exists within the same label container +label:has(.help-text) { + input, + textarea, + select { + margin-bottom: 0.25rem !important; } } @@ -109,18 +127,41 @@ textarea { } } +// FormKit support +.formkit-outer[data-invalid='true'] { + #{$form-input-selector}, + textarea, + select { + @apply field-error; + } + + .formkit-message { + @apply text-n-ruby-9 dark:text-n-ruby-9 block text-sm mb-2.5 w-full; + } +} + .error { - input, + #{$form-input-selector}, input:not([type]), textarea, select, .multiselect > .multiselect__tags, .multiselect:not(.no-margin) { - @apply border border-solid border-red-400 dark:border-red-400 mb-1; + @apply field-error; + } + + // Only add mb-1 when .message exists within the same .error container + // And exclude no-margin from the margin-bottom + &:has(.message) { + input:not(.no-margin), + textarea, + select { + margin-bottom: 0.25rem !important; + } } .message { - @apply text-red-400 dark:text-red-400 block text-sm mb-2.5 w-full; + @apply text-n-ruby-9 dark:text-n-ruby-9 block text-sm mb-2.5 w-full; } } @@ -130,7 +171,7 @@ textarea { } .error { - @apply border-red-400 dark:border-red-400; + @apply text-n-ruby-9 dark:text-n-ruby-9; } } @@ -141,11 +182,11 @@ code { @apply text-xs border-0; &.hljs { - @apply bg-n-slate-3 dark:bg-n-solid-3 text-slate-800 dark:text-slate-50 rounded-lg p-5; + @apply bg-n-slate-3 dark:bg-n-solid-3 text-n-slate-12 rounded-lg p-5; .hljs-number, .hljs-string { - @apply text-red-800 dark:text-red-400; + @apply text-n-ruby-9 dark:text-n-ruby-9; } .hljs-name, diff --git a/app/javascript/dashboard/assets/scss/widgets/_buttons.scss b/app/javascript/dashboard/assets/scss/widgets/_buttons.scss index 1213e7c26..133e07bd1 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_buttons.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_buttons.scss @@ -42,7 +42,7 @@ button { } } - &:hover:not(.secondary):not(.success):not(.alert):not(.warning):not( + &:hover:not(:disabled):not(.success):not(.alert):not(.warning):not( .clear ):not(.smooth):not(.hollow) { @apply bg-n-brand/80 dark:bg-n-brand/80; @@ -117,63 +117,63 @@ button { } &.hollow { - @apply border border-n-brand/40 bg-transparent text-n-blue-text hover:bg-n-brand/20; + @apply border border-n-brand/40 bg-transparent text-n-blue-text hover:enabled:bg-n-brand/20; &.secondary { - @apply text-n-slate-12 border-n-slate-5 hover:bg-n-slate-5; + @apply text-n-slate-12 border-n-slate-5 hover:enabled:bg-n-slate-5; } &.success { - @apply text-n-teal-9 border-n-teal-8 hover:bg-n-teal-5; + @apply text-n-teal-9 border-n-teal-8 hover:enabled:bg-n-teal-5; } &.alert { - @apply text-n-ruby-9 border-n-ruby-8 hover:bg-n-ruby-5; + @apply text-n-ruby-9 border-n-ruby-8 hover:enabled:bg-n-ruby-5; } &.warning { - @apply text-n-amber-9 border-n-amber-8 hover:bg-n-amber-5; + @apply text-n-amber-9 border-n-amber-8 hover:enabled:bg-n-amber-5; } } // Smooth style &.smooth { - @apply bg-n-brand/10 dark:bg-n-brand/30 text-n-blue-text hover:bg-n-brand/20 dark:hover:bg-n-brand/40; + @apply bg-n-brand/10 dark:bg-n-brand/30 text-n-blue-text hover:enabled:bg-n-brand/20 dark:hover:enabled:bg-n-brand/40; &.secondary { - @apply bg-n-slate-4 text-n-slate-11 hover:text-n-slate-11 hover:bg-n-slate-5; + @apply bg-n-slate-4 text-n-slate-11 hover:enabled:text-n-slate-11 hover:enabled:bg-n-slate-5; } &.success { - @apply bg-n-teal-4 text-n-teal-11 hover:text-n-teal-11 hover:bg-n-teal-5; + @apply bg-n-teal-4 text-n-teal-11 hover:enabled:text-n-teal-11 hover:enabled:bg-n-teal-5; } &.alert { - @apply bg-n-ruby-4 text-n-ruby-11 hover:text-n-ruby-11 hover:bg-n-ruby-5; + @apply bg-n-ruby-4 text-n-ruby-11 hover:enabled:text-n-ruby-11 hover:enabled:bg-n-ruby-5; } &.warning { - @apply bg-n-amber-4 text-n-amber-11 hover:text-n-amber-11 hover:bg-n-amber-5; + @apply bg-n-amber-4 text-n-amber-11 hover:enabled:text-n-amber-11 hover:enabled:bg-n-amber-5; } } &.clear { - @apply text-n-blue-text hover:bg-n-brand/10 dark:hover:bg-n-brand/30; + @apply text-n-blue-text hover:enabled:bg-n-brand/10 dark:hover:enabled:bg-n-brand/30; &.secondary { - @apply text-n-slate-12 hover:bg-n-slate-4; + @apply text-n-slate-12 hover:enabled:bg-n-slate-4; } &.success { - @apply text-n-teal-10 hover:bg-n-teal-4; + @apply text-n-teal-10 hover:enabled:bg-n-teal-4; } &.alert { - @apply text-n-ruby-11 hover:bg-n-ruby-4; + @apply text-n-ruby-11 hover:enabled:bg-n-ruby-4; } &.warning { - @apply text-n-amber-11 hover:bg-n-amber-4; + @apply text-n-amber-11 hover:enabled:bg-n-amber-4; } &:active { diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue index 4afca6269..cd8c767b8 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue @@ -247,10 +247,9 @@ defineExpose({ :placeholder="item.placeholder" class="[&>div>button]:h-8" :class="{ - '[&>div>button]:bg-n-alpha-black2 [&>div>button]:!outline-transparent': + '[&>div>button]:bg-n-alpha-black2 [&>div>button:not(.focused)]:!outline-transparent': !isDetailsView, - '[&>div>button]:!outline-n-weak [&>div>button]:hover:!outline-n-strong [&>div>button]:!bg-n-alpha-black2': - isDetailsView, + '[&>div>button]:!bg-n-alpha-black2': isDetailsView, }" @update:model-value="handleCountrySelection" /> @@ -266,7 +265,9 @@ defineExpose({ :placeholder="item.placeholder" :message-type="getMessageType(item.key)" :custom-input-class="`h-8 !pt-1 !pb-1 ${ - !isDetailsView ? '[&:not(.error,.focus)]:!border-transparent' : '' + !isDetailsView + ? '[&:not(.error,.focus)]:!outline-transparent' + : '' }`" class="w-full" @input=" @@ -303,7 +304,7 @@ defineExpose({ v-model=" state.additionalAttributes.socialProfiles[item.key.toLowerCase()] " - class="w-auto min-w-[100px] text-sm bg-transparent reset-base text-n-slate-12 dark:text-n-slate-12 placeholder:text-n-slate-10 dark:placeholder:text-n-slate-10" + class="w-auto min-w-[100px] text-sm bg-transparent outline-none reset-base text-n-slate-12 dark:text-n-slate-12 placeholder:text-n-slate-10 dark:placeholder:text-n-slate-10" :placeholder="item.placeholder" :size="item.placeholder.length" @input="emit('update', state)" diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactCustomAttributes.vue b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactCustomAttributes.vue index 4964668df..039d2c709 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactCustomAttributes.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactCustomAttributes.vue @@ -135,7 +135,7 @@ const hasNoUsedAttributes = computed(() => usedAttributes.value.length === 0); :placeholder=" t('CONTACTS_LAYOUT.SIDEBAR.ATTRIBUTES.SEARCH_PLACEHOLDER') " - class="w-full h-8 py-2 pl-10 pr-2 text-sm border-none rounded-lg bg-n-alpha-black2 dark:bg-n-solid-1 text-n-slate-12" + class="w-full h-8 py-2 pl-10 pr-2 text-sm reset-base outline-none border-none rounded-lg bg-n-alpha-black2 dark:bg-n-solid-1 text-n-slate-12" />
{
diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue index 7a066c265..5a60fefdc 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue @@ -303,7 +303,7 @@ const handleAvatarDelete = () => { :message=" t('HELP_CENTER.PORTAL_SETTINGS.FORM.LIVE_CHAT_WIDGET.HELP_TEXT') " - class="[&>div>button]:!outline-n-weak" + class="[&>div>button:not(.focused)]:!outline-n-weak" />
diff --git a/app/javascript/dashboard/components-next/NewConversation/components/WhatsAppOptions.vue b/app/javascript/dashboard/components-next/NewConversation/components/WhatsAppOptions.vue index b8fd1429a..3980c6b30 100644 --- a/app/javascript/dashboard/components-next/NewConversation/components/WhatsAppOptions.vue +++ b/app/javascript/dashboard/components-next/NewConversation/components/WhatsAppOptions.vue @@ -96,7 +96,7 @@ const handleSendMessage = template => { 'COMPOSE_NEW_CONVERSATION.FORM.WHATSAPP_OPTIONS.SEARCH_PLACEHOLDER' ) " - class="w-full h-8 py-2 pl-10 pr-2 text-sm border-none rounded-lg bg-n-alpha-black2 dark:bg-n-solid-1 text-n-slate-12" + class="w-full h-8 py-2 pl-10 pr-2 text-sm reset-base outline-none border-none rounded-lg bg-n-alpha-black2 dark:bg-n-solid-1 text-n-slate-12" />
{ const buttonClass = computed(() => { const classMap = { - slate: 'bg-n-slate-4 text-n-slate-11', - amber: 'bg-n-amber-4 text-n-amber-11', - teal: 'bg-n-teal-4 text-n-teal-11', - ruby: 'bg-n-ruby-4 text-n-ruby-11', - blue: 'bg-n-blue-4 text-n-blue-11', + slate: 'bg-n-slate-4 hover:bg-n-slate-5 text-n-slate-11', + amber: 'bg-n-amber-4 hover:bg-n-amber-5 text-n-amber-11', + teal: 'bg-n-teal-4 hover:bg-n-teal-5 text-n-teal-11', + ruby: 'bg-n-ruby-4 hover:bg-n-ruby-5 text-n-ruby-11', + blue: 'bg-n-blue-4 hover:bg-n-blue-5 text-n-blue-11', }; return classMap[props.color]; diff --git a/app/javascript/dashboard/components-next/button/Button.vue b/app/javascript/dashboard/components-next/button/Button.vue index 81a74eec4..93622ad64 100644 --- a/app/javascript/dashboard/components-next/button/Button.vue +++ b/app/javascript/dashboard/components-next/button/Button.vue @@ -100,49 +100,57 @@ const STYLE_CONFIG = { colors: { blue: { solid: - 'bg-n-brand text-white hover:enabled:brightness-110 outline-transparent', + 'bg-n-brand text-white hover:enabled:brightness-110 focus-visible:brightness-110 outline-transparent', faded: - 'bg-n-brand/10 text-n-blue-text hover:enabled:bg-n-brand/20 outline-transparent', - outline: 'text-n-blue-text outline-n-blue-border', - ghost: 'text-n-blue-text hover:enabled:bg-n-alpha-2 outline-transparent', - link: 'text-n-blue-text hover:enabled:underline outline-transparent', + 'bg-n-brand/10 text-n-blue-text hover:enabled:bg-n-brand/20 focus-visible:bg-n-brand/20 outline-transparent', + outline: 'text-n-blue-text outline-n-brand', + ghost: + 'text-n-blue-text hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 outline-transparent', + link: 'text-n-blue-text hover:enabled:underline focus-visible:underline outline-transparent', }, ruby: { solid: - 'bg-n-ruby-9 text-white hover:enabled:bg-n-ruby-10 outline-transparent', + 'bg-n-ruby-9 text-white hover:enabled:bg-n-ruby-10 focus-visible:bg-n-ruby-10 outline-transparent', faded: - 'bg-n-ruby-9/10 text-n-ruby-11 hover:enabled:bg-n-ruby-9/20 outline-transparent', - outline: 'text-n-ruby-11 hover:enabled:bg-n-ruby-9/10 outline-n-ruby-8', - ghost: 'text-n-ruby-11 hover:enabled:bg-n-alpha-2 outline-transparent', - link: 'text-n-ruby-9 hover:enabled:underline outline-transparent', + 'bg-n-ruby-9/10 text-n-ruby-11 hover:enabled:bg-n-ruby-9/20 focus-visible:bg-n-ruby-9/20 outline-transparent', + outline: + 'text-n-ruby-11 hover:enabled:bg-n-ruby-9/10 focus-visible:bg-n-ruby-9/10 outline-n-ruby-8', + ghost: + 'text-n-ruby-11 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 outline-transparent', + link: 'text-n-ruby-9 hover:enabled:underline focus-visible:underline outline-transparent', }, amber: { solid: - 'bg-n-amber-9 text-white hover:enabled:bg-n-amber-10 outline-transparent', + 'bg-n-amber-9 text-white hover:enabled:bg-n-amber-10 focus-visible:bg-n-amber-10 outline-transparent', faded: - 'bg-n-amber-9/10 text-n-slate-12 hover:enabled:bg-n-amber-9/20 outline-transparent', + 'bg-n-amber-9/10 text-n-slate-12 hover:enabled:bg-n-amber-9/20 focus-visible:bg-n-amber-9/20 outline-transparent', outline: - 'text-n-amber-11 hover:enabled:bg-n-amber-9/10 outline-n-amber-9', - link: 'text-n-amber-9 hover:enabled:underline outline-transparent', - ghost: 'text-n-amber-9 hover:enabled:bg-n-alpha-2 outline-transparent', + 'text-n-amber-11 hover:enabled:bg-n-amber-9/10 focus-visible:bg-n-amber-9/10 outline-n-amber-9', + link: 'text-n-amber-9 hover:enabled:underline focus-visible:underline outline-transparent', + ghost: + 'text-n-amber-9 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 outline-transparent', }, slate: { solid: - 'bg-n-solid-3 dark:hover:enabled:bg-n-solid-2 hover:enabled:bg-n-alpha-2 text-n-slate-12 outline-n-container', + 'bg-n-solid-3 dark:hover:enabled:bg-n-solid-2 dark:focus-visible:bg-n-solid-2 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 text-n-slate-12 outline-n-container', faded: - 'bg-n-slate-9/10 text-n-slate-12 hover:enabled:bg-n-slate-9/20 outline-transparent', - outline: 'text-n-slate-11 outline-n-strong hover:enabled:bg-n-slate-9/10', - link: 'text-n-slate-11 hover:enabled:text-n-slate-12 hover:enabled:underline outline-transparent', - ghost: 'text-n-slate-12 hover:enabled:bg-n-alpha-2 outline-transparent', + 'bg-n-slate-9/10 text-n-slate-12 hover:enabled:bg-n-slate-9/20 focus-visible:bg-n-slate-9/20 outline-transparent', + outline: + 'text-n-slate-11 outline-n-strong hover:enabled:bg-n-slate-9/10 focus-visible:bg-n-slate-9/10', + link: 'text-n-slate-11 hover:enabled:text-n-slate-12 focus-visible:text-n-slate-12 hover:enabled:underline focus-visible:underline outline-transparent', + ghost: + 'text-n-slate-12 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 outline-transparent', }, teal: { solid: - 'bg-n-teal-9 text-white hover:enabled:bg-n-teal-10 outline-transparent', + 'bg-n-teal-9 text-white hover:enabled:bg-n-teal-10 focus-visible:bg-n-teal-10 outline-transparent', faded: - 'bg-n-teal-9/10 text-n-slate-12 hover:enabled:bg-n-teal-9/20 outline-transparent', - outline: 'text-n-teal-11 hover:enabled:bg-n-teal-9/10 outline-n-teal-9', - link: 'text-n-teal-9 hover:enabled:underline outline-transparent', - ghost: 'text-n-teal-9 hover:enabled:bg-n-alpha-2 outline-transparent', + 'bg-n-teal-9/10 text-n-slate-12 hover:enabled:bg-n-teal-9/20 focus-visible:bg-n-teal-9/20 outline-transparent', + outline: + 'text-n-teal-11 hover:enabled:bg-n-teal-9/10 focus-visible:bg-n-teal-9/10 outline-n-teal-9', + link: 'text-n-teal-9 hover:enabled:underline focus-visible:underline outline-transparent', + ghost: + 'text-n-teal-9 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 outline-transparent', }, }, sizes: { diff --git a/app/javascript/dashboard/components-next/combobox/ComboBox.vue b/app/javascript/dashboard/components-next/combobox/ComboBox.vue index 8dbd00388..026a63a70 100644 --- a/app/javascript/dashboard/components-next/combobox/ComboBox.vue +++ b/app/javascript/dashboard/components-next/combobox/ComboBox.vue @@ -96,7 +96,7 @@ watch( :label="selectedLabel" trailing-icon :disabled="disabled" - class="justify-between w-full !px-3 !py-2.5 text-n-slate-12 font-normal group-hover/combobox:border-n-slate-6" + class="justify-between w-full !px-3 !py-2.5 text-n-slate-12 font-normal group-hover/combobox:border-n-slate-6 [&:not(.focused)]:hover:enabled:outline-n-slate-6 [&:not(.focused)]:dark:hover:enabled:outline-n-slate-6 [&:not(.focused)]:dark:outline-n-weak focus:outline-n-brand" :class="{ focused: open }" :icon="open ? 'i-lucide-chevron-up' : 'i-lucide-chevron-down'" @click="toggleDropdown" diff --git a/app/javascript/dashboard/components-next/combobox/ComboBoxDropdown.vue b/app/javascript/dashboard/components-next/combobox/ComboBoxDropdown.vue index e1cd8a086..e24a366e2 100644 --- a/app/javascript/dashboard/components-next/combobox/ComboBoxDropdown.vue +++ b/app/javascript/dashboard/components-next/combobox/ComboBoxDropdown.vue @@ -69,7 +69,7 @@ defineExpose({ :value="searchValue" type="search" :placeholder="searchPlaceholder || t('COMBOBOX.SEARCH_PLACEHOLDER')" - class="w-full py-2 pl-10 pr-2 text-sm border-none rounded-t-md bg-n-solid-1 text-slate-900 dark:text-slate-50" + class="reset-base w-full py-2 pl-10 pr-2 text-sm focus:outline-none border-none rounded-t-md bg-n-solid-1 text-slate-900 dark:text-slate-50" @input="onInputSearch" />
diff --git a/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue b/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue index 4e3b96259..c8e69b049 100644 --- a/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue +++ b/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue @@ -75,7 +75,7 @@ onMounted(() => { :placeholder=" searchPlaceholder || t('DROPDOWN_MENU.SEARCH_PLACEHOLDER') " - class="w-full h-8 py-2 pl-10 pr-2 text-sm border-none rounded-lg bg-n-alpha-black2 dark:bg-n-solid-1 text-n-slate-12" + class="reset-base w-full h-8 py-2 pl-10 pr-2 text-sm focus:outline-none border-none rounded-lg bg-n-alpha-black2 dark:bg-n-solid-1 text-n-slate-12" />