diff --git a/.cursor/rules/ui-ux-design-guidelines.mdc b/.cursor/rules/ui-ux-design-guidelines.mdc index 430959d6..49bf9faf 100644 --- a/.cursor/rules/ui-ux-design-guidelines.mdc +++ b/.cursor/rules/ui-ux-design-guidelines.mdc @@ -15,7 +15,7 @@ The codebase uses TailwindCSS v4.x (the newest version) with a custom design sys - Always start by referencing [maybe-design-system.css](mdc:app/assets/tailwind/maybe-design-system.css) to see the base primitives, functional tokens, and component tokens we use in the codebase - Always prefer using the functional "tokens" defined in @maybe-design-system.css when possible. - - Example 1: use `text-primary` rather than `text-gray-900` + - Example 1: use `text-primary` rather than `text-primary` - Example 2: use `bg-container` rather than `bg-white` - Example 3: use `border border-primary` rather than `border border-gray-200` - Never create new styles in [maybe-design-system.css](mdc:app/assets/tailwind/maybe-design-system.css) or [application.css](mdc:app/assets/tailwind/application.css) without explicitly receiving permission to do so diff --git a/app/assets/tailwind/maybe-design-system.css b/app/assets/tailwind/maybe-design-system.css index 65772d05..49d7265b 100644 --- a/app/assets/tailwind/maybe-design-system.css +++ b/app/assets/tailwind/maybe-design-system.css @@ -275,46 +275,90 @@ @utility bg-surface { @apply bg-gray-50; + + @variant theme-dark { + @apply bg-black; + } } @utility bg-surface-hover { @apply bg-gray-100; + + @variant theme-dark { + @apply bg-gray-800; + } } @utility bg-surface-inset { @apply bg-gray-100; + + @variant theme-dark { + @apply bg-gray-900; + } } @utility bg-surface-inset-hover { @apply bg-gray-200; + + @variant theme-dark { + @apply bg-gray-800; + } } @utility bg-container { @apply bg-white; + + @variant theme-dark { + @apply bg-gray-900; + } } @utility bg-container-hover { @apply bg-gray-50; + + @variant theme-dark { + @apply bg-gray-800; + } } @utility bg-container-inset { @apply bg-gray-50; + + @variant theme-dark { + @apply bg-gray-800; + } } @utility bg-container-inset-hover { @apply bg-gray-100; + + @variant theme-dark { + @apply bg-gray-700; + } } @utility bg-inverse { @apply bg-gray-800; + + @variant theme-dark { + @apply bg-white; + } } @utility bg-inverse-hover { @apply bg-gray-700; + + @variant theme-dark { + @apply bg-gray-100; + } } @utility bg-overlay { - @apply bg-alpha-black-200; + background-color: rgba(var(--color-gray-100), 0.5); + + @variant theme-dark { + background-color: var(--color-alpha-black-900); + } } @utility border-primary { @@ -363,15 +407,15 @@ } .btn--secondary { - @apply bg-gray-50 hover:bg-gray-100 text-gray-900; + @apply bg-gray-50 hover:bg-gray-100 text-primary; } .btn--outline { - @apply border border-alpha-black-200 text-gray-900 hover:bg-gray-50 disabled:bg-gray-50 disabled:hover:bg-gray-50 disabled:text-gray-400; + @apply border border-alpha-black-200 text-primary hover:bg-gray-50 disabled:bg-gray-50 disabled:hover:bg-gray-50 disabled:text-gray-400; } .btn--ghost { - @apply border border-transparent text-gray-900 hover:bg-gray-100; + @apply border border-transparent text-primary hover:bg-surface-inset-hover; } .btn--destructive { @@ -421,7 +465,7 @@ } .form-field__radio { - @apply text-gray-900; + @apply text-primary; } .form-field__submit { diff --git a/app/helpers/forms_helper.rb b/app/helpers/forms_helper.rb index 55c8c74c..0f0c8f40 100644 --- a/app/helpers/forms_helper.rb +++ b/app/helpers/forms_helper.rb @@ -30,7 +30,7 @@ end private def radio_tab_contents(label:, icon:) - tag.div(class: "flex px-4 py-1 rounded-lg items-center space-x-2 justify-center text-subdued group-has-checked:bg-white group-has-checked:text-gray-800 group-has-checked:shadow-sm") do + tag.div(class: "flex px-4 py-1 rounded-lg items-center space-x-2 justify-center text-subdued group-has-checked:bg-container group-has-checked:text-gray-800 group-has-checked:shadow-sm") do concat lucide_icon(icon, class: "w-5 h-5") concat tag.span(label, class: "group-has-checked:font-semibold") end diff --git a/app/helpers/menus_helper.rb b/app/helpers/menus_helper.rb index f903d8ec..34134888 100644 --- a/app/helpers/menus_helper.rb +++ b/app/helpers/menus_helper.rb @@ -38,7 +38,7 @@ module MenusHelper end def contextual_menu_content(&block) - tag.div class: "min-w-[200px] p-1 z-50 shadow-border-xs bg-white rounded-lg hidden", + tag.div class: "min-w-[200px] p-1 z-50 shadow-border-xs bg-container rounded-lg hidden", data: { menu_target: "content" } do capture(&block) end diff --git a/app/views/account/entries/_entry_group.html.erb b/app/views/account/entries/_entry_group.html.erb index 7a08bcf7..20ed2e45 100644 --- a/app/views/account/entries/_entry_group.html.erb +++ b/app/views/account/entries/_entry_group.html.erb @@ -21,7 +21,7 @@ <% end %> -