diff --git a/src/components/button/button.styles.ts b/src/components/button/button.styles.ts index 6a8d4f8ed..b37671604 100644 --- a/src/components/button/button.styles.ts +++ b/src/components/button/button.styles.ts @@ -167,7 +167,7 @@ export default css` .button--outline { background: none; - border: solid 1px; + border: solid max(1px, var(--wa-form-controls-border-width)); } /* Brand */ @@ -206,6 +206,18 @@ export default css` border-color: color-mix(in oklch, var(--wa-color-success-element-fill-vivid), black 6%); } + .button--outline.button--small { + line-height: calc(var(--wa-form-controls-height-s) - max(1px, var(--wa-form-controls-border-width)) * 2); + } + + .button--outline.button--medium { + line-height: calc(var(--wa-form-controls-height-m) - max(1px, var(--wa-form-controls-border-width)) * 2); + } + + .button--outline.button--large { + line-height: calc(var(--wa-form-controls-height-l) - max(1px, var(--wa-form-controls-border-width)) * 2); + } + /* Neutral */ .button--outline.button--neutral { border-color: var(--wa-color-neutral-element-outline-vivid); @@ -290,20 +302,23 @@ export default css` */ .button--small { - height: auto; + height: var(--wa-form-controls-height-s); font-size: var(--wa-font-size-s); + line-height: var(--wa-form-controls-height-s); border-radius: var(--wa-corners-1x); } .button--medium { - height: auto; + height: var(--wa-form-controls-height-m); font-size: var(--wa-font-size-m); + line-height: var(--wa-form-controls-height-m); border-radius: var(--wa-corners-1x); } .button--large { - height: auto; + height: var(--wa-form-controls-height-l); font-size: var(--wa-font-size-l); + line-height: var(--wa-form-controls-height-l); border-radius: var(--wa-corners-1x); } @@ -385,15 +400,15 @@ export default css` */ .button--has-label.button--small .button__label { - padding: var(--wa-space-xs) var(--wa-space-m); + padding: 0 var(--wa-space-s); } .button--has-label.button--medium .button__label { - padding: var(--wa-space-s) var(--wa-space-l); + padding: 0 var(--wa-space-m); } .button--has-label.button--large .button__label { - padding: var(--wa-space-m) var(--wa-space-xl); + padding: 0 var(--wa-space-l); } .button--has-prefix.button--small { diff --git a/src/components/input/input.styles.ts b/src/components/input/input.styles.ts index 105666de4..a291788fc 100644 --- a/src/components/input/input.styles.ts +++ b/src/components/input/input.styles.ts @@ -17,83 +17,59 @@ export default css` justify-content: start; position: relative; width: 100%; - font-family: var(--sl-input-font-family); - font-weight: var(--sl-input-font-weight); - letter-spacing: var(--sl-input-letter-spacing); + font-family: var(--wa-font-family-body); + font-weight: var(--wa-font-weight-normal); vertical-align: middle; overflow: hidden; cursor: text; - transition: var(--sl-transition-fast) color, var(--sl-transition-fast) border, var(--sl-transition-fast) box-shadow, - var(--sl-transition-fast) background-color; + transition: var(--wa-transition-fast) color, var(--wa-transition-fast) border, + var(--wa-transition-fast) background-color; } /* Standard inputs */ .input--standard { - background-color: var(--sl-input-background-color); - border: solid var(--sl-input-border-width) var(--sl-input-border-color); - } - - .input--standard:hover:not(.input--disabled) { - background-color: var(--sl-input-background-color-hover); - border-color: var(--sl-input-border-color-hover); + background-color: var(--wa-form-controls-background); + border: var(--wa-form-controls-border-style) var(--wa-form-controls-border-width) + var(--wa-form-controls-color-resting); } .input--standard.input--focused:not(.input--disabled) { - background-color: var(--sl-input-background-color-focus); - border-color: var(--sl-input-border-color-focus); - box-shadow: 0 0 0 var(--sl-focus-ring-width) var(--sl-input-focus-ring-color); - } - - .input--standard.input--focused:not(.input--disabled) .input__control { - color: var(--sl-input-color-focus); + outline: var(--wa-focus-ring); + outline-offset: var(--wa-focus-ring-offset); + border-color: var(--wa-form-controls-color-activated); } .input--standard.input--disabled { - background-color: var(--sl-input-background-color-disabled); - border-color: var(--sl-input-border-color-disabled); opacity: 0.5; cursor: not-allowed; } - .input--standard.input--disabled .input__control { - color: var(--sl-input-color-disabled); - } - - .input--standard.input--disabled .input__control::placeholder { - color: var(--sl-input-placeholder-color-disabled); - } - /* Filled inputs */ .input--filled { border: none; - background-color: var(--sl-input-filled-background-color); - color: var(--sl-input-color); - } - - .input--filled:hover:not(.input--disabled) { - background-color: var(--sl-input-filled-background-color-hover); + background-color: var(--wa-color-neutral-container-fill-muted); + color: var(--wa-color-neutral-text-on-muted); } .input--filled.input--focused:not(.input--disabled) { - background-color: var(--sl-input-filled-background-color-focus); - outline: var(--sl-focus-ring); - outline-offset: var(--sl-focus-ring-offset); + outline: var(--wa-focus-ring); + outline-offset: 0; } .input--filled.input--disabled { - background-color: var(--sl-input-filled-background-color-disabled); opacity: 0.5; cursor: not-allowed; } .input__control { flex: 1 1 auto; + min-width: 0; + height: 100%; font-family: inherit; font-size: inherit; font-weight: inherit; - min-width: 0; - height: 100%; - color: var(--sl-input-color); + line-height: var(----wa-form-controls-font-line-height); + color: var(--wa-form-controls-color-text); border: none; background: inherit; box-shadow: none; @@ -114,27 +90,23 @@ export default css` .input__control:-webkit-autofill:hover, .input__control:-webkit-autofill:focus, .input__control:-webkit-autofill:active { - box-shadow: 0 0 0 var(--sl-input-height-large) var(--sl-input-background-color-hover) inset !important; - -webkit-text-fill-color: var(--sl-color-primary-500); - caret-color: var(--sl-input-color); + box-shadow: none; + -webkit-text-fill-color: var(--wa-color-brand-text-on-muted); + caret-color: var(--wa-form-controls-color-text); } .input--filled .input__control:-webkit-autofill, .input--filled .input__control:-webkit-autofill:hover, .input--filled .input__control:-webkit-autofill:focus, .input--filled .input__control:-webkit-autofill:active { - box-shadow: 0 0 0 var(--sl-input-height-large) var(--sl-input-filled-background-color) inset !important; + box-shadow: none; } .input__control::placeholder { - color: var(--sl-input-placeholder-color); + color: var(--wa-form-controls-placeholder-color); user-select: none; } - .input:hover:not(.input--disabled) .input__control { - color: var(--sl-input-color-hover); - } - .input__control:focus { outline: none; } @@ -149,7 +121,7 @@ export default css` .input__prefix ::slotted(sl-icon), .input__suffix ::slotted(sl-icon) { - color: var(--sl-input-icon-color); + color: var(--wa-color-neutral-text-on-surface); } /* @@ -157,75 +129,75 @@ export default css` */ .input--small { - border-radius: var(--sl-input-border-radius-small); - font-size: var(--sl-input-font-size-small); - height: var(--sl-input-height-small); + border-radius: var(--wa-corners-1x); + font-size: var(--wa-font-size-s); + height: var(--wa-form-controls-height-s); } .input--small .input__control { - height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2); - padding: 0 var(--sl-input-spacing-small); + height: calc(var(--wa-form-controls-height-s) - var(--wa-form-controls-border-width) * 2); + padding: 0 var(--wa-space-s); } .input--small .input__clear, .input--small .input__password-toggle { - width: calc(1em + var(--sl-input-spacing-small) * 2); + width: calc(1em + var(--wa-space-s) * 2); } .input--small .input__prefix ::slotted(*) { - margin-inline-start: var(--sl-input-spacing-small); + margin-inline-start: var(--wa-space-s); } .input--small .input__suffix ::slotted(*) { - margin-inline-end: var(--sl-input-spacing-small); + margin-inline-end: var(--wa-space-s); } .input--medium { - border-radius: var(--sl-input-border-radius-medium); - font-size: var(--sl-input-font-size-medium); - height: var(--sl-input-height-medium); + border-radius: var(--wa-corners-1x); + font-size: var(--wa-font-size-m); + height: var(--wa-form-controls-height-m); } .input--medium .input__control { - height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2); - padding: 0 var(--sl-input-spacing-medium); + height: calc(var(--wa-form-controls-height-m) - var(--wa-form-controls-border-width) * 2); + padding: 0 var(--wa-space-m); } .input--medium .input__clear, .input--medium .input__password-toggle { - width: calc(1em + var(--sl-input-spacing-medium) * 2); + width: calc(1em + var(--wa-space-m) * 2); } .input--medium .input__prefix ::slotted(*) { - margin-inline-start: var(--sl-input-spacing-medium); + margin-inline-start: var(--wa-space-m); } .input--medium .input__suffix ::slotted(*) { - margin-inline-end: var(--sl-input-spacing-medium); + margin-inline-end: var(--wa-space-m); } .input--large { - border-radius: var(--sl-input-border-radius-large); - font-size: var(--sl-input-font-size-large); - height: var(--sl-input-height-large); + border-radius: var(--wa-corners-1x); + font-size: var(--wa-font-size-l); + height: var(--wa-form-controls-height-l); } .input--large .input__control { - height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2); - padding: 0 var(--sl-input-spacing-large); + height: calc(var(--wa-form-controls-height-l) - var(--wa-form-controls-border-width) * 2); + padding: 0 var(--wa-space-l); } .input--large .input__clear, .input--large .input__password-toggle { - width: calc(1em + var(--sl-input-spacing-large) * 2); + width: calc(1em + var(--wa-space-l) * 2); } .input--large .input__prefix ::slotted(*) { - margin-inline-start: var(--sl-input-spacing-large); + margin-inline-start: var(--wa-space-l); } .input--large .input__suffix ::slotted(*) { - margin-inline-end: var(--sl-input-spacing-large); + margin-inline-end: var(--wa-space-l); } /* @@ -233,15 +205,15 @@ export default css` */ .input--pill.input--small { - border-radius: var(--sl-input-height-small); + border-radius: var(--wa-corners-pill); } .input--pill.input--medium { - border-radius: var(--sl-input-height-medium); + border-radius: var(--wa-corners-pill); } .input--pill.input--large { - border-radius: var(--sl-input-height-large); + border-radius: var(--wa-corners-pill); } /* @@ -258,17 +230,17 @@ export default css` align-items: center; justify-content: center; font-size: inherit; - color: var(--sl-input-icon-color); + color: var(--wa-form-controls-color-activated); border: none; background: none; padding: 0; - transition: var(--sl-transition-fast) color; + transition: var(--wa-transition-fast) color; cursor: pointer; } - .input__clear:hover, - .input__password-toggle:hover { - color: var(--sl-input-icon-color-hover); + .input__clear:active, + .input__password-toggle:active { + color: color-mix(in oklch, currentColor, black 12%); } .input__clear:focus, diff --git a/src/components/textarea/textarea.styles.ts b/src/components/textarea/textarea.styles.ts index ac18266a9..40da89177 100644 --- a/src/components/textarea/textarea.styles.ts +++ b/src/components/textarea/textarea.styles.ts @@ -15,75 +15,47 @@ export default css` align-items: center; position: relative; width: 100%; - font-family: var(--sl-input-font-family); - font-weight: var(--sl-input-font-weight); - line-height: var(--sl-line-height-normal); - letter-spacing: var(--sl-input-letter-spacing); + font-family: var(--wa-font-family-body); + font-weight: var(--wa-font-weight-normal); + color: var(--wa-form-controls-color-text); + line-height: var(--wa-form-controls-font-line-height); vertical-align: middle; - transition: var(--sl-transition-fast) color, var(--sl-transition-fast) border, var(--sl-transition-fast) box-shadow, - var(--sl-transition-fast) background-color; + transition: var(--wa-transition-fast) color, var(--wa-transition-fast) border, + var(--wa-transition-fast) background-color; cursor: text; } /* Standard textareas */ .textarea--standard { - background-color: var(--sl-input-background-color); - border: solid var(--sl-input-border-width) var(--sl-input-border-color); - } - - .textarea--standard:hover:not(.textarea--disabled) { - background-color: var(--sl-input-background-color-hover); - border-color: var(--sl-input-border-color-hover); - } - .textarea--standard:hover:not(.textarea--disabled) .textarea__control { - color: var(--sl-input-color-hover); + background-color: var(--wa-form-controls-background); + border: var(--wa-form-controls-border-style) var(--wa-form-controls-border-width) + var(--wa-form-controls-color-resting); } .textarea--standard.textarea--focused:not(.textarea--disabled) { - background-color: var(--sl-input-background-color-focus); - border-color: var(--sl-input-border-color-focus); - color: var(--sl-input-color-focus); - box-shadow: 0 0 0 var(--sl-focus-ring-width) var(--sl-input-focus-ring-color); - } - - .textarea--standard.textarea--focused:not(.textarea--disabled) .textarea__control { - color: var(--sl-input-color-focus); + outline: var(--wa-focus-ring); + outline-offset: var(--wa-focus-ring-offset); + border-color: var(--wa-form-controls-color-activated); } .textarea--standard.textarea--disabled { - background-color: var(--sl-input-background-color-disabled); - border-color: var(--sl-input-border-color-disabled); opacity: 0.5; cursor: not-allowed; } - .textarea--standard.textarea--disabled .textarea__control { - color: var(--sl-input-color-disabled); - } - - .textarea--standard.textarea--disabled .textarea__control::placeholder { - color: var(--sl-input-placeholder-color-disabled); - } - /* Filled textareas */ .textarea--filled { border: none; - background-color: var(--sl-input-filled-background-color); - color: var(--sl-input-color); - } - - .textarea--filled:hover:not(.textarea--disabled) { - background-color: var(--sl-input-filled-background-color-hover); + background-color: var(--wa-color-neutral-container-fill-muted); + color: var(--wa-color-neutral-text-on-muted); } .textarea--filled.textarea--focused:not(.textarea--disabled) { - background-color: var(--sl-input-filled-background-color-focus); - outline: var(--sl-focus-ring); - outline-offset: var(--sl-focus-ring-offset); + outline: var(--wa-focus-ring); + outline-offset: 0; } .textarea--filled.textarea--disabled { - background-color: var(--sl-input-filled-background-color-disabled); opacity: 0.5; cursor: not-allowed; } @@ -94,7 +66,7 @@ export default css` font-size: inherit; font-weight: inherit; line-height: 1.4; - color: var(--sl-input-color); + color: var(--wa-form-controls-color-text); border: none; background: none; box-shadow: none; @@ -110,7 +82,7 @@ export default css` } .textarea__control::placeholder { - color: var(--sl-input-placeholder-color); + color: var(--wa-form-controls-placeholder-color); user-select: none; } @@ -123,30 +95,30 @@ export default css` */ .textarea--small { - border-radius: var(--sl-input-border-radius-small); - font-size: var(--sl-input-font-size-small); + border-radius: var(--wa-corners-1x); + font-size: var(--wa-font-size-s); } .textarea--small .textarea__control { - padding: 0.5em var(--sl-input-spacing-small); + padding: 0.5em var(--wa-space-s); } .textarea--medium { - border-radius: var(--sl-input-border-radius-medium); - font-size: var(--sl-input-font-size-medium); + border-radius: var(--wa-corners-1x); + font-size: var(--wa-font-size-m); } .textarea--medium .textarea__control { - padding: 0.5em var(--sl-input-spacing-medium); + padding: 0.5em var(--wa-space-m); } .textarea--large { - border-radius: var(--sl-input-border-radius-large); - font-size: var(--sl-input-font-size-large); + border-radius: var(--wa-corners-1x); + font-size: var(--wa-font-size-l); } .textarea--large .textarea__control { - padding: 0.5em var(--sl-input-spacing-large); + padding: 0.5em var(--wa-space-l); } /* diff --git a/src/themes/default.css b/src/themes/default.css index b209279b0..0046b76e1 100644 --- a/src/themes/default.css +++ b/src/themes/default.css @@ -263,11 +263,15 @@ --wa-form-controls-border-style: var(--wa-border-style); --wa-form-controls-border-width: var(--wa-border-width-thin); --wa-form-controls-corners: var(--wa-corners-1x); + --wa-form-controls-color-text: var(--wa-color-neutral-text-on-surface); --wa-form-controls-color-resting: var(--wa-color-neutral-element-outline-muted); --wa-form-controls-color-activated: var(--wa-color-brand-action-vivid); --wa-form-controls-font-line-height: var(--wa-font-height-compact); --wa-form-controls-padding: var(--wa-space-square-s); --wa-form-controls-placeholder-color: var(--wa-color-neutral-60); + --wa-form-controls-height-s: 2rem; + --wa-form-controls-height-m: 2.75rem; + --wa-form-controls-height-l: 3.5rem; /** * From 2.x