diff --git a/assets/css/app.css b/assets/css/app.css index 6f00298..44f9a30 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -548,4 +548,96 @@ --color-secondary-content: oklch(98% 0 0); } +/* ============================================ + WCAG 2.2 AA: Tab list inactive tab text contrast (4.5:1) + ============================================ */ +#member-tablist .tab:not(.tab-active) { + color: oklch(0.35 0.02 285); +} +[data-theme="dark"] #member-tablist .tab:not(.tab-active) { + color: oklch(0.72 0.02 257); +} + +/* ============================================ + WCAG 2.2 AA: Link contrast - primary and accent + ============================================ */ +[data-theme="light"] .link.link-primary { + color: oklch(0.45 0.15 35); +} +[data-theme="light"] .link.link-primary:hover { + color: oklch(0.38 0.14 35); +} +[data-theme="dark"] .link.link-primary { + color: oklch(0.82 0.14 45); +} +[data-theme="dark"] .link.link-primary:hover { + color: oklch(0.88 0.12 45); +} +[data-theme="dark"] .link.link-accent { + color: oklch(0.82 0.18 292); +} +[data-theme="dark"] .link.link-accent:hover { + color: oklch(0.88 0.16 292); +} + +/* ============================================ + WCAG 2.2 AA: Danger zone heading contrast (dark theme) + ============================================ */ +[data-theme="dark"] #danger-zone-heading.text-error { + color: oklch(0.78 0.18 25); +} + +/* ============================================ + WCAG 2.2 AA: Blue link contrast in dark theme + ============================================ */ +[data-theme="dark"] a.text-blue-700, +[data-theme="dark"] a.text-blue-600, +[data-theme="dark"] a.hover\:text-blue-800 { + color: oklch(0.72 0.16 255); +} +[data-theme="dark"] a.text-blue-700:hover, +[data-theme="dark"] a.text-blue-600:hover { + color: oklch(0.82 0.14 255); +} + +/* ============================================ + WCAG 2.2 AA: Password / form label on light box in dark theme + ============================================ */ +[data-theme="dark"] .bg-gray-50 { + background-color: var(--color-base-200); + color: var(--color-base-content); +} +[data-theme="dark"] .bg-gray-50 .label, +[data-theme="dark"] .bg-gray-50 .mb-1.label, +[data-theme="dark"] .bg-gray-50 .text-gray-600, +[data-theme="dark"] .bg-gray-50 .text-gray-700, +[data-theme="dark"] .bg-gray-50 strong, +[data-theme="dark"] .bg-gray-50 p, +[data-theme="dark"] .bg-gray-50 li { + color: var(--color-base-content); +} + +/* Dark mode: orange/red info boxes (admin note, OIDC warning) – dark bg, light text */ +[data-theme="dark"] .bg-orange-50 { + background-color: oklch(0.32 0.06 55); + border-color: oklch(0.42 0.08 55); + color: var(--color-base-content); +} +[data-theme="dark"] .bg-orange-50 .text-orange-800, +[data-theme="dark"] .bg-orange-50 p, +[data-theme="dark"] .bg-orange-50 strong { + color: var(--color-base-content); +} +[data-theme="dark"] .bg-red-50 { + background-color: oklch(0.32 0.08 25); + border-color: oklch(0.42 0.12 25); + color: var(--color-base-content); +} +[data-theme="dark"] .bg-red-50 .text-red-800, +[data-theme="dark"] .bg-red-50 .text-red-700, +[data-theme="dark"] .bg-red-50 p, +[data-theme="dark"] .bg-red-50 strong { + color: var(--color-base-content); +} + /* This file is for your main application CSS */ diff --git a/lib/mv_web/components/core_components.ex b/lib/mv_web/components/core_components.ex index 3606b34..bb5529e 100644 --- a/lib/mv_web/components/core_components.ex +++ b/lib/mv_web/components/core_components.ex @@ -562,13 +562,17 @@ defmodule MvWeb.CoreComponents do phx-target={@phx_target} > <%= if @checkboxes do %> - + <% end %> {item.label} diff --git a/lib/mv_web/live/custom_field_live/form_component.ex b/lib/mv_web/live/custom_field_live/form_component.ex index 3872e56..2e98aeb 100644 --- a/lib/mv_web/live/custom_field_live/form_component.ex +++ b/lib/mv_web/live/custom_field_live/form_component.ex @@ -32,9 +32,9 @@ defmodule MvWeb.CustomFieldLive.FormComponent do <.icon name="hero-arrow-left" class="size-4" /> {gettext("Back")} -

+

{if @custom_field, do: gettext("Edit Data Field"), else: gettext("New Data Field")} -

+ <.form diff --git a/lib/mv_web/live/global_settings_live.ex b/lib/mv_web/live/global_settings_live.ex index 8c4ea2c..58eed2a 100644 --- a/lib/mv_web/live/global_settings_live.ex +++ b/lib/mv_web/live/global_settings_live.ex @@ -304,22 +304,20 @@ defmodule MvWeb.GlobalSettingsLive do } />
- + <.input + field={@form[:oidc_only]} + type="checkbox" + class="checkbox checkbox-sm" + disabled={@oidc_only_env_set or not @oidc_configured} + label={ + if @oidc_only_env_set do + gettext("Only OIDC sign-in (hide password login)") <> + " (" <> gettext("From OIDC_ONLY") <> ")" + else + gettext("Only OIDC sign-in (hide password login)") + end + } + />

{gettext( "When enabled and OIDC is configured, the sign-in page shows only the Single Sign-On button." diff --git a/lib/mv_web/live/import_live/components.ex b/lib/mv_web/live/import_live/components.ex index 9d5db4f..b1b21f8 100644 --- a/lib/mv_web/live/import_live/components.ex +++ b/lib/mv_web/live/import_live/components.ex @@ -88,16 +88,17 @@ defmodule MvWeb.ImportLive.Components do phx-submit="start_import" data-testid="csv-upload-form" > -

-
<.form diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex index 221a210..abb29e3 100644 --- a/lib/mv_web/live/member_live/form.ex +++ b/lib/mv_web/live/member_live/form.ex @@ -215,14 +215,16 @@ defmodule MvWeb.MemberLive.Form do <.form_section title={gettext("Membership Fee")}>
-