From cc5329a5f4d3ea91cac93bc7f9b8f943b7ced226 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Wed, 22 Jul 2026 12:27:09 +0200 Subject: Paths --- src/objects/_text-field.scss | 149 +++++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 69 deletions(-) (limited to 'src/objects/_text-field.scss') diff --git a/src/objects/_text-field.scss b/src/objects/_text-field.scss index 5a48df3..a8d3ec8 100644 --- a/src/objects/_text-field.scss +++ b/src/objects/_text-field.scss @@ -1,84 +1,91 @@ -@use 'sass:meta'; -@use 'pkg:iro-sass/src/bem'; -@use 'pkg:iro-sass/src/props'; -@use '../props' as *; +@use "sass:meta"; +@use "pkg:iro-sass/bem"; +@use "pkg:iro-sass/props"; +@use "../props" as *; -@forward 'text-field.vars'; -@use 'text-field.vars' as vars; +@forward "text-field.vars"; +@use "text-field.vars" as vars; @mixin -invalid { - $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); - - @include bem.sibling-elem('bg') { - inset-block: $focus-border-offset; - inset-inline: $focus-border-offset; - border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); + $focus-border-offset: calc( + props.get(vars.$border-width) - props.get(vars.$focus--border-width) + ); + + @include bem.sibling-elem("bg") { + inset-block: $focus-border-offset; + inset-inline: $focus-border-offset; + border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); } &:hover { - @include bem.sibling-elem('bg') { + @include bem.sibling-elem("bg") { border-color: props.get(vars.$error--hover--border-color); } } &:focus { - @include bem.sibling-elem('bg') { + @include bem.sibling-elem("bg") { border-color: props.get(vars.$error--focus--border-color); } } } @mixin -keyboard-focus { - @include bem.sibling-elem('bg') { - outline: props.get(vars.$key-focus--outline-color) solid props.get(vars.$key-focus--border-width); - border-color: props.get(vars.$key-focus--border-color); + @include bem.sibling-elem("bg") { + outline: props.get(vars.$key-focus--outline-color) solid + props.get(vars.$key-focus--border-width); + border-color: props.get(vars.$key-focus--border-color); //outline-offset: props.get(vars.$focus --border); } } @mixin styles { - @include materialize-at-root(meta.module-variables('vars')); + @include materialize-at-root(meta.module-variables("vars")); - @include bem.object('text-field') { - $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); + @include bem.object("text-field") { + $focus-border-offset: calc( + props.get(vars.$border-width) - props.get(vars.$focus--border-width) + ); - position: relative; - min-inline-size: 0; + position: relative; + min-inline-size: 0; background-color: props.get(vars.$bg-color); - border-radius: props.get(vars.$rounding); + border-radius: props.get(vars.$rounding); - @include bem.elem('bg') { - position: absolute; - inset-block: 0; - inset-inline: 0; - display: block; + @include bem.elem("bg") { + position: absolute; + inset-block: 0; + inset-inline: 0; + display: block; pointer-events: none; - border: props.get(vars.$border-width) solid props.get(vars.$border-color); - border-radius: props.get(vars.$rounding); + border: props.get(vars.$border-width) solid props.get(vars.$border-color); + border-radius: props.get(vars.$rounding); } - @include bem.elem('native') { - box-sizing: border-box; - inline-size: 100%; - padding-block: calc(props.get(vars.$pad-b) - .5em * (props.get(vars.$line-height) - 1)); - padding-inline: props.get(vars.$pad-i); - font: inherit; - line-height: props.get(vars.$line-height); - color: props.get(vars.$text-color); - appearance: none; - resize: none; + @include bem.elem("native") { + box-sizing: border-box; + inline-size: 100%; + padding-block: calc( + props.get(vars.$pad-b) - 0.5em * (props.get(vars.$line-height) - 1) + ); + padding-inline: props.get(vars.$pad-i); + font: inherit; + line-height: props.get(vars.$line-height); + color: props.get(vars.$text-color); + appearance: none; + resize: none; background-color: transparent; - border: 1px solid transparent; + border: 1px solid transparent; &::placeholder { font-style: italic; - color: props.get(vars.$placeholder-color); - opacity: 1; + color: props.get(vars.$placeholder-color); + opacity: 1; } &:hover { - @include bem.sibling-elem('bg') { + @include bem.sibling-elem("bg") { border-color: props.get(vars.$hover--border-color); } } @@ -86,10 +93,11 @@ &:focus { outline: 0; - @include bem.sibling-elem('bg') { - inset-block: $focus-border-offset; - inset-inline: $focus-border-offset; - border: props.get(vars.$focus--border-width) solid props.get(vars.$focus--border-color); + @include bem.sibling-elem("bg") { + inset-block: $focus-border-offset; + inset-inline: $focus-border-offset; + border: props.get(vars.$focus--border-width) solid + props.get(vars.$focus--border-color); border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); } } @@ -104,46 +112,49 @@ } } - @include bem.modifier('extended') { + @include bem.modifier("extended") { padding: props.get(vars.$extended--pad); - @include bem.multi('&', 'elem' 'bg') { + @include bem.multi("&", "elem" "bg") { border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); } - @include bem.elem('native') { + @include bem.elem("native") { &:focus { - @include bem.sibling-elem('bg') { - border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad) - $focus-border-offset); + @include bem.sibling-elem("bg") { + border-radius: calc( + props.get(vars.$rounding) + props.get(vars.$extended--pad) - + $focus-border-offset + ); } } } } - @include bem.modifier('pill') { - @include bem.multi('&', 'elem' 'bg') { + @include bem.modifier("pill") { + @include bem.multi("&", "elem" "bg") { border-radius: 100em; } - @include bem.elem('native') { + @include bem.elem("native") { padding-inline: props.get(vars.$pad-i-pill); &:focus { - @include bem.sibling-elem('bg') { + @include bem.sibling-elem("bg") { border-radius: 100em; } } } - @include bem.modifier('extended') { - @include bem.elem('native') { + @include bem.modifier("extended") { + @include bem.elem("native") { padding-inline: props.get(vars.$pad-i); } } } - @include bem.is('invalid') { - @include bem.elem('native') { + @include bem.is("invalid") { + @include bem.elem("native") { @include -invalid; &:focus-visible { @@ -152,10 +163,10 @@ } } - @include bem.is('disabled') { + @include bem.is("disabled") { background-color: props.get(vars.$disabled--bg-color); - @include bem.elem('native') { + @include bem.elem("native") { color: props.get(vars.$disabled--text-color); &::placeholder { @@ -163,21 +174,21 @@ } } - @include bem.elem('bg') { + @include bem.elem("bg") { border-color: props.get(vars.$disabled--border-color); } - @include bem.is('invalid') { - @include bem.elem('native') { - @include bem.sibling-elem('bg') { + @include bem.is("invalid") { + @include bem.elem("native") { + @include bem.sibling-elem("bg") { border-color: props.get(vars.$disabled--border-color); } } } - @include bem.elem('native') { + @include bem.elem("native") { &:invalid { - @include bem.sibling-elem('bg') { + @include bem.sibling-elem("bg") { border-color: props.get(vars.$disabled--border-color); } } -- cgit v1.3.1