diff --git a/frontend/src/app/main/ui/alert.cljs b/frontend/src/app/main/ui/alert.cljs index f03f963b63..46e825a078 100644 --- a/frontend/src/app/main/ui/alert.cljs +++ b/frontend/src/app/main/ui/alert.cljs @@ -10,8 +10,10 @@ [app.main.data.modal :as modal] [app.main.store :as st] [app.main.ui.components.link :as lk] + [app.main.ui.ds.buttons.button :refer [button*]] + [app.main.ui.ds.buttons.icon-button :refer [icon-button*]] + [app.main.ui.ds.foundations.typography.heading :refer [heading*]] [app.main.ui.ds.notifications.context-notification :refer [context-notification*]] - [app.main.ui.icons :as deprecated-icon] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as k] @@ -56,22 +58,25 @@ [:div {:class (stl/css :modal-overlay)} [:div {:class (stl/css :modal-container)} [:div {:class (stl/css :modal-header)} - [:h2 {:class (stl/css :modal-title)} title] - [:button {:class (stl/css :modal-close-btn) - :on-click accept-fn} deprecated-icon/close]] + [:> heading* {:level 2 :typography "headline-medium" :class (stl/css :modal-title)} title] + [:> icon-button* {:icon "close" + :aria-label (tr "labels.close") + :variant "ghost" + :class (stl/css :modal-close-btn) + :on-click accept-fn}]] [:div {:class (stl/css :modal-content)} (when (and (string? message) (not= message "")) - [:h3 {:class (stl/css :modal-msg)} message]) + [:> heading* {:level 3 :typography "body-large" :class (stl/css :modal-msg)} message]) (when (seq link-message) - [:h3 {:class (stl/css :modal-msg)} + [:> heading* {:level 3 :typography "body-large" :class (stl/css :modal-msg)} [:span (:before link-message)] [:> lk/link* {:action (:on-click link-message) :class (stl/css :link)} (:text link-message)] [:span (:after link-message)]]) (when (and (string? scd-message) (not= scd-message "")) - [:h3 {:class (stl/css :modal-scd-msg)} scd-message]) + [:> heading* {:level 3 :typography "body-large" :class (stl/css :modal-scd-msg)} scd-message]) (when (string? hint) [:> context-notification* {:level :info @@ -80,10 +85,6 @@ (when-not hide-actions? [:div {:class (stl/css :modal-footer)} - [:div {:class (stl/css :action-buttons)} - [:input {:class (stl/css-case :accept-btn true - :danger (= accept-style :danger) - :primary (= accept-style :primary)) - :type "button" - :value accept-label - :on-click accept-fn}]]])]])) + [:> button* {:variant (if (= accept-style :danger) "destructive" "primary") + :on-click accept-fn} + accept-label]])]])) diff --git a/frontend/src/app/main/ui/alert.scss b/frontend/src/app/main/ui/alert.scss index 56b57be305..cf4b9e6c37 100644 --- a/frontend/src/app/main/ui/alert.scss +++ b/frontend/src/app/main/ui/alert.scss @@ -4,63 +4,63 @@ // // Copyright (c) KALEIDOS INC Sucursal en España SL -@use "refactor/common-refactor.scss" as deprecated; +@use "ds/_utils.scss" as *; +@use "ds/_sizes.scss" as *; +@use "ds/_borders.scss" as *; +@use "ds/typography.scss" as *; .modal-overlay { - @extend %modal-overlay-base; - - &.transparent { - background-color: transparent; - } + display: flex; + justify-content: center; + align-items: center; + position: fixed; + inset: 0; + z-index: var(--z-index-set); + background-color: var(--color-overlay-default); } .modal-container { - @extend %modal-container-base; + position: relative; + padding: var(--sp-xxxl); + border-radius: $br-8; + background-color: var(--color-background-primary); + border: $b-2 solid var(--color-background-quaternary); + min-inline-size: px2rem(364); + min-block-size: $sz-192; + max-inline-size: $sz-512; + max-block-size: $sz-512; } .modal-header { - margin-bottom: deprecated.$s-24; + margin-block-end: var(--sp-xxl); } .modal-title { - @include deprecated.headline-medium-typography; - - color: var(--modal-title-foreground-color); + color: var(--color-foreground-primary); } .modal-close-btn { - @extend %modal-close-btn-base; + position: absolute; + inset-block-start: var(--sp-s); + inset-inline-end: px2rem(6); } .modal-content { - @include deprecated.body-large-typography; + @include use-typography("body-large"); - margin-bottom: deprecated.$s-24; + line-height: 1.5; + margin-block-end: var(--sp-xxl); } -.action-buttons { - @extend %modal-action-btns; -} - -.cancel-button { - @extend %modal-cancel-btn; -} - -.accept-btn { - @extend %modal-accept-btn; - - &.danger { - @extend %modal-danger-btn; - } +.modal-footer { + display: flex; + justify-content: flex-end; } .modal-scd-msg, -.modal-subtitle, .modal-msg { - @include deprecated.body-large-typography; - - color: var(--modal-text-foreground-color); line-height: 1.5; + color: var(--color-foreground-secondary); } .link { diff --git a/frontend/src/app/main/ui/auth.cljs b/frontend/src/app/main/ui/auth.cljs index e52cbff034..790d8b0a3e 100644 --- a/frontend/src/app/main/ui/auth.cljs +++ b/frontend/src/app/main/ui/auth.cljs @@ -14,7 +14,8 @@ [app.main.ui.auth.recovery :refer [recovery-page*]] [app.main.ui.auth.recovery-request :refer [recovery-request-page*]] [app.main.ui.auth.register :refer [register-page* register-success-page* register-validate-page* terms-register*]] - [app.main.ui.icons :as deprecated-icon] + [app.main.ui.ds.foundations.assets.raw-svg :refer [raw-svg*] :as raw-svg] + [app.main.ui.ds.foundations.typography.heading :refer [heading*]] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [rumext.v2 :as mf])) @@ -45,13 +46,14 @@ [:main {:class (stl/css-case :auth-section true :register is-register)} - [:h1 {:class (stl/css :logo-container)} - [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} deprecated-icon/logo]] + [:> heading* {:level 1 :typography "title-large" :class (stl/css :logo-container)} + [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} + [:> raw-svg* {:id raw-svg/penpot-logo + :class (stl/css :logo)}]]] [:div {:class (stl/css :login-illustration)} [:img {:src "images/registration-illustration.png"}]] [:section {:class (stl/css :auth-content)} - (case section :auth-register [:> register-page* {:params params}] diff --git a/frontend/src/app/main/ui/auth.scss b/frontend/src/app/main/ui/auth.scss index 11b209ff05..7d593ce4fa 100644 --- a/frontend/src/app/main/ui/auth.scss +++ b/frontend/src/app/main/ui/auth.scss @@ -4,53 +4,60 @@ // // Copyright (c) KALEIDOS INC Sucursal en España SL -@use "refactor/common-refactor.scss" as deprecated; +@use "ds/_sizes.scss" as *; +@use "ds/_utils.scss" as *; .auth-section { - position: relative; - align-items: center; - background: var(--panel-background-color); display: grid; - gap: deprecated.$s-32; + align-items: center; grid-template-columns: repeat(5, 1fr); - height: 100%; - padding: deprecated.$s-32; - width: 100%; + gap: var(--sp-xxxl); + position: relative; + background: var(--color-background-primary); + block-size: 100%; + padding: var(--sp-xxxl); + inline-size: 100%; overflow: auto; @media (width <= 992px) { display: flex; justify-content: center; } +} - &.register { - display: flex; - justify-content: center; - align-items: center; +.auth-section.register { + display: flex; + justify-content: center; + align-items: center; +} - .login-illustration { - display: none; - } - } +.auth-section.register .login-illustration { + display: none; } .logo-container { - position: absolute; - top: deprecated.$s-20; - left: deprecated.$s-20; display: flex; justify-content: flex-start; - width: deprecated.$s-120; - height: deprecated.$s-96; - margin-block-end: deprecated.$s-52; + position: absolute; + inset-block-start: var(--sp-xl); + inset-inline-start: var(--sp-xl); + inline-size: $sz-120; + block-size: $sz-96; + margin-block-end: px2rem(52); +} + +.logo { + inline-size: $sz-120; + block-size: $sz-40; + fill: var(--color-foreground-primary); } .login-illustration { display: flex; justify-content: center; grid-column: 1 / 4; - width: 40vw; - height: auto; + inline-size: 40vw; + block-size: auto; justify-self: center; @media (width <= 992px) { @@ -59,21 +66,13 @@ } .auth-content { - grid-column: 4 / 6; display: grid; grid-template-rows: 1fr auto; - gap: deprecated.$s-24; - height: fit-content; - max-width: deprecated.$s-412; - padding-block-end: deprecated.$s-8; + grid-column: 4 / 6; + gap: var(--sp-xxl); + block-size: fit-content; + max-inline-size: px2rem(412); + padding-block-end: var(--sp-s); position: relative; - width: 100%; -} - -.logo-btn { - svg { - width: deprecated.$s-120; - height: deprecated.$s-40; - fill: var(--main-icon-foreground); - } + inline-size: 100%; } diff --git a/frontend/src/app/main/ui/auth/common.scss b/frontend/src/app/main/ui/auth/common.scss index b5852fb094..951ea442a6 100644 --- a/frontend/src/app/main/ui/auth/common.scss +++ b/frontend/src/app/main/ui/auth/common.scss @@ -4,91 +4,120 @@ // // Copyright (c) KALEIDOS INC Sucursal en España SL -@use "refactor/common-refactor.scss" as deprecated; +@use "ds/_utils.scss" as *; +@use "ds/_sizes.scss" as *; +@use "ds/_borders.scss" as *; +@use "ds/typography.scss" as *; .auth-form-wrapper { - width: 100%; + inline-size: 100%; padding-block-end: 0; display: grid; - gap: deprecated.$s-12; + gap: var(--sp-m); + // Native