Skip to content

Commit bd8bd16

Browse files
authored
fix(text-field): fix small textfield right area padding, fix small textfield font size #527 (#528)
1 parent abd1592 commit bd8bd16

1 file changed

Lines changed: 63 additions & 68 deletions

File tree

src/tedi/components/form/textfield/textfield.module.scss

Lines changed: 63 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,32 @@
11
@use '@tedi-design-system/core/bootstrap-utility/breakpoints';
22
@use '@tedi-design-system/core/mixins';
3+
@use 'sass:map';
34

45
$input-height-large: 3.5rem;
6+
$input-padding-right-map: (
7+
default: (
8+
normal: 2rem,
9+
both: 4rem,
10+
),
11+
small: (
12+
normal: 2rem,
13+
both: 4rem,
14+
),
15+
large: (
16+
normal: 3.5rem,
17+
both: 6rem,
18+
),
19+
);
20+
21+
@function get-padding-right($size, $clearable, $icon) {
22+
@if $clearable and $icon {
23+
@return map.get(map.get($input-padding-right-map, $size), both);
24+
} @else if $clearable or $icon {
25+
@return map.get(map.get($input-padding-right-map, $size), normal);
26+
} @else {
27+
@return null;
28+
}
29+
}
530

631
@mixin textfield-focus($border-color: null) {
732
@if $border-color {
@@ -69,29 +94,45 @@ $input-height-large: 3.5rem;
6994
@include textfield-focus(var(--form-general-feedback-success-border));
7095
}
7196

72-
.tedi-textfield--clearable &,
73-
.tedi-textfield--with-icon & {
74-
padding-right: 2rem;
75-
}
76-
77-
.tedi-textfield--clearable.tedi-textfield--with-icon & {
78-
padding-right: 4rem;
79-
}
80-
8197
&::placeholder {
8298
color: var(--form-input-text-placeholder);
8399
opacity: 1;
84100
}
85101
}
86102

87-
// hide arrows on number inputs
88-
.tedi-textfield__input--hidden-arrows[type='number'] {
89-
appearance: textfield; // for Firefox
103+
@each $size in default, small, large {
104+
$selector: if($size == default, '.tedi-textfield', '.tedi-textfield--#{$size}');
105+
#{$selector} {
106+
$padding: get-padding-right($size, true, false);
90107

91-
&::-webkit-outer-spin-button,
92-
&::-webkit-inner-spin-button {
93-
margin: 0;
94-
appearance: none;
108+
&.tedi-textfield--clearable .tedi-textfield__input {
109+
padding-right: get-padding-right($size, true, false);
110+
}
111+
112+
&.tedi-textfield--with-icon .tedi-textfield__input {
113+
padding-right: get-padding-right($size, false, true);
114+
}
115+
116+
&.tedi-textfield--clearable.tedi-textfield--with-icon .tedi-textfield__input {
117+
padding-right: get-padding-right($size, true, true);
118+
}
119+
120+
@if $size == small {
121+
.tedi-textfield__input {
122+
height: var(--form-field-height-sm);
123+
padding: var(--form-field-padding-y-sm) var(--form-field-padding-x-md-default);
124+
font-size: var(--body-regular-size);
125+
}
126+
} @else if $size == large {
127+
.tedi-textfield__input {
128+
height: $input-height-large;
129+
padding: var(--form-field-padding-y-lg) var(--form-field-padding-x-lg);
130+
131+
@include breakpoints.media-breakpoint-down(md) {
132+
height: var(--form-field-height);
133+
}
134+
}
135+
}
95136
}
96137
}
97138

@@ -100,26 +141,24 @@ $input-height-large: 3.5rem;
100141
top: 0;
101142
right: 0;
102143
display: flex;
144+
gap: var(--layout-grid-gutters-04);
103145
align-items: center;
104146
height: 100%;
105-
padding: 0.75rem 0.5rem;
147+
padding: var(--form-field-padding-y-md-default) var(--form-field-padding-x-md-default);
106148

107149
.tedi-textfield--small & {
108-
padding: 0.25rem 0.5rem;
150+
padding: var(--form-field-padding-y-sm) var(--form-field-padding-x-md-default);
109151
}
110152

111153
.tedi-textfield--large & {
112-
padding: 1rem;
154+
padding: var(--form-field-padding-y-lg) var(--form-field-padding-x-lg);
113155
}
114156
}
115157

116-
.tedi-textfield__separator {
117-
margin-right: 0.5rem;
118-
margin-left: 0.25rem;
119-
}
120-
121158
.tedi-textfield__icon-wrapper {
122159
display: flex;
160+
justify-content: center;
161+
width: var(--icon-04);
123162
color: var(--form-input-text-filled);
124163
transition: color 0.2s ease;
125164

@@ -150,50 +189,6 @@ div.tedi-textfield__icon-wrapper {
150189
vertical-align: text-top;
151190
}
152191

153-
/* Small */
154-
.tedi-textfield--small {
155-
.tedi-textfield__input {
156-
height: var(--form-field-height-sm);
157-
padding: var(--form-field-padding-y-sm) var(--form-field-padding-x-md-default);
158-
font-size: var(--body-small-regular-size);
159-
}
160-
161-
&.tedi-textfield--clearable &,
162-
&.tedi-textfield--with-icon & {
163-
padding-right: 2rem;
164-
}
165-
166-
&.tedi-textfield--clearable.tedi-textfield--with-icon & {
167-
padding-right: 4rem;
168-
}
169-
}
170-
171-
/* Large */
172-
.tedi-textfield--large {
173-
.tedi-textfield__input {
174-
height: $input-height-large;
175-
padding: 1rem;
176-
177-
@include breakpoints.media-breakpoint-down(md) {
178-
height: var(--form-field-height);
179-
}
180-
}
181-
182-
.tedi-textfield__separator {
183-
margin-right: 0.5rem;
184-
margin-left: 0.5rem;
185-
}
186-
187-
&.tedi-textfield--clearable .tedi-textfield__input,
188-
&.tedi-textfield--with-icon .tedi-textfield__input {
189-
padding-right: 3.5rem;
190-
}
191-
192-
&.tedi-textfield--clearable.tedi-textfield--with-icon .tedi-textfield__input {
193-
padding-right: 6rem;
194-
}
195-
}
196-
197192
.tedi-textfield__feedback-wrapper {
198193
display: flex;
199194
}

0 commit comments

Comments
 (0)