|
16 | 16 | $indigo-theme: $variant == 'indigo'; |
17 | 17 | $fluent-theme: $variant == 'fluent'; |
18 | 18 | $bootstrap-theme: $variant == 'bootstrap'; |
19 | | - $NOT-material-theme: $variant != 'material'; |
20 | | - $NOT-indigo-theme: $variant != 'indigo'; |
21 | | - $NOT-fluent-theme: $variant != 'fluent'; |
22 | | - $NOT-bootstrap-theme: $variant != 'bootstrap'; |
23 | 19 |
|
24 | 20 | $required-symbol: '*'; |
25 | 21 | $required-symbol-margin: rem(2px); |
26 | 22 |
|
27 | | - // This creates an inverse relationship |
28 | | - // between the value of the base scale size and |
29 | | - // the sizing of all inner elements. |
30 | | - // i.e. the bigger the scale size, |
31 | | - // the smaller the padding of the inner items. |
32 | | - $base-scale-size: ( |
33 | | - 'comfortable': 16px, |
34 | | - 'cosy': 19px, |
35 | | - 'compact': 22px |
36 | | - ); |
37 | | - |
38 | 23 | $bootstrap-inline-padding: ( |
39 | | - 'comfortable': rem(16px), |
40 | | - 'cosy': rem(12px), |
| 24 | + 'comfortable': rem(14px), |
| 25 | + 'cosy': rem(10px), |
41 | 26 | 'compact': rem(8px) |
42 | 27 | ); |
43 | 28 |
|
|
50 | 35 | $input-top-padding: rem(20px); |
51 | 36 | $input-bottom-padding: rem(6px); |
52 | 37 |
|
53 | | - $bundle-padding-top: ( |
54 | | - 'comfortable': rem(18px, map.get($base-scale-size, 'comfortable')), |
55 | | - 'cosy': rem(18px, map.get($base-scale-size, 'cosy')), |
56 | | - 'compact': rem(18px, map.get($base-scale-size, 'compact')), |
57 | | - ); |
58 | | - |
59 | 38 | $hint-spacing-block: map.get(( |
60 | 39 | 'material': rem(4px), |
61 | 40 | 'fluent': rem(5px), |
|
64 | 43 | ), $variant); |
65 | 44 |
|
66 | 45 | $hint-spacing-inline: map.get(( |
67 | | - 'material': sizable(rem(14px), rem(16px), rem(18px)), |
| 46 | + 'material': sizable(rem(12px), rem(14px), rem(16px)), |
68 | 47 | 'fluent': 0, |
69 | 48 | 'bootstrap': 0, |
70 | 49 | 'indigo': 0, |
|
77 | 56 | 'indigo': rem(15px), |
78 | 57 | ), $variant); |
79 | 58 |
|
| 59 | + $material-box-top-padding: sizable(rem(16px), rem(20px), rem(24px)); |
| 60 | + $material-border-top-padding: sizable(rem(8px), rem(12px), rem(16px)); |
| 61 | + |
| 62 | + $textarea-top-padding: map.get(( |
| 63 | + 'material': rem(0px), |
| 64 | + 'fluent': sizable(rem(6px), rem(10px), rem(14px)), |
| 65 | + 'bootstrap': sizable(rem(4px), rem(8px), rem(12px)), |
| 66 | + 'indigo': sizable(rem(4px), rem(6px), rem(8px)), |
| 67 | + ), $variant); |
| 68 | + |
| 69 | + $textarea-font: map.get(( |
| 70 | + 'material': 'var(--ig-subtitle-1-line-height)', |
| 71 | + 'fluent': 'var(--ig-body-2-line-height)', |
| 72 | + 'bootstrap': 'var(--ig-body-1-line-height)', |
| 73 | + 'indigo': 'var(--ig-body-2-line-height)', |
| 74 | + ), $variant); |
| 75 | + |
80 | 76 | // Base Start |
81 | 77 | %form-group-prefix--upload { |
82 | 78 | padding: 0; |
|
115 | 111 | } @else if $indigo-theme { |
116 | 112 | padding-inline: pad-inline(rem(2px), rem(4px), rem(6px)); |
117 | 113 | } @else { |
118 | | - padding-inline: pad-inline(rem(8px), rem(12px), rem(16px)); |
| 114 | + padding-inline: pad-inline(rem(8px), rem(10px), rem(14px)); |
119 | 115 | } |
120 | 116 | } |
121 | 117 | } |
|
149 | 145 | @include sizable(); |
150 | 146 | --component-size: var(--ig-size, #{var-get($theme, 'default-size')}); |
151 | 147 | --input-size: var(--component-size); |
152 | | - --input-icon: #{sizable(rem(14px), rem(16px), rem(18px))}; |
| 148 | + --input-icon: #{sizable(rem(14px), rem(16px), rem(16px))}; |
153 | 149 |
|
154 | 150 | position: relative; |
155 | 151 | display: block; |
|
869 | 865 |
|
870 | 866 | @if $variant == 'material' { |
871 | 867 | overflow: hidden; |
872 | | - min-width: pad(rem(10px), rem(12px), rem(14px)); |
| 868 | + min-width: pad(rem(8px), rem(10px), rem(12px)); |
873 | 869 | } |
874 | 870 | } |
875 | 871 |
|
|
1227 | 1223 | %form-group-textarea-label:not(%textarea-group-label--focused) { |
1228 | 1224 | @include type-style('subtitle-1'); |
1229 | 1225 |
|
1230 | | - top: calc($input-top-padding - #{rem(3px)}); |
| 1226 | + top: calc(#{$material-box-top-padding} - #{rem(3px)}); |
1231 | 1227 | transform: translateY(0); |
1232 | 1228 | margin-bottom: auto; |
1233 | 1229 | } |
|
1244 | 1240 | } |
1245 | 1241 |
|
1246 | 1242 | %form-group-textarea-group-bundle { |
1247 | | - // 3 lines * 22px + 8px bottom padding + 8px top padding |
1248 | | - --textarea-size: #{sizable( |
1249 | | - rem(82px, map.get($base-scale-size, 'compact')), |
1250 | | - rem(82px, map.get($base-scale-size, 'cosy')), |
1251 | | - rem(82px, map.get($base-scale-size, 'comfortable')) |
1252 | | - )}; |
1253 | | - min-height: var(--textarea-size) !important; |
| 1243 | + // 3 lines of text + top padding |
| 1244 | + --textarea-height: calc((#{$textarea-font} * 3) + #{$textarea-top-padding}); |
| 1245 | + min-height: var(--textarea-height) !important; |
1254 | 1246 | height: auto !important; |
1255 | 1247 |
|
1256 | 1248 | %form-group-label { |
|
1260 | 1252 |
|
1261 | 1253 | @if $material-theme { |
1262 | 1254 | %form-group-textarea-label { |
1263 | | - top: calc($input-top-padding - #{rem(1px)}); |
| 1255 | + top: calc(#{$material-box-top-padding} - #{rem(1px)}); |
1264 | 1256 | margin-block-end: auto; |
1265 | 1257 | } |
1266 | 1258 |
|
1267 | 1259 | %textarea-group--outlined { |
1268 | 1260 | %form-group-textarea-label { |
1269 | | - top: calc($input-top-padding - #{rem(3px)}); |
| 1261 | + top: calc(#{$material-border-top-padding} - #{rem(3px)}); |
1270 | 1262 | } |
1271 | 1263 | } |
1272 | 1264 |
|
1273 | 1265 | %textarea-group--box { |
1274 | 1266 | %form-group-textarea-label { |
1275 | | - top: calc($input-top-padding - #{rem(2px)}); |
| 1267 | + top: calc(#{$material-box-top-padding} - #{rem(2px)}); |
1276 | 1268 | } |
1277 | 1269 | } |
1278 | 1270 |
|
1279 | 1271 | %textarea-group-label--focused { |
1280 | 1272 | transform: translateY(0); |
1281 | | - top: calc(#{$input-top-padding} / 4); |
| 1273 | + top: calc(#{$material-box-top-padding} / 4); |
1282 | 1274 | } |
1283 | 1275 |
|
1284 | 1276 | %textarea-group-label--filled--border, |
|
1336 | 1328 | overflow: hidden; |
1337 | 1329 | text-overflow: ellipsis; |
1338 | 1330 |
|
1339 | | - &:not([type='date']) { |
| 1331 | + &:not(%form-group-textarea, [type='date']) { |
1340 | 1332 | line-height: 0 !important; /* Reset typography */ |
1341 | 1333 | } |
1342 | 1334 |
|
|
1450 | 1442 | } |
1451 | 1443 |
|
1452 | 1444 | %form-group-textarea { |
1453 | | - --textarea-size: #{sizable( |
1454 | | - rem(82px, map.get($base-scale-size, 'compact')), |
1455 | | - rem(82px, map.get($base-scale-size, 'cosy')), |
1456 | | - rem(82px, map.get($base-scale-size, 'comfortable')) |
1457 | | - )}; |
| 1445 | + --textarea-height: calc((#{$textarea-font} * 3) + #{$textarea-top-padding}); |
1458 | 1446 |
|
1459 | | - min-height: var(--textarea-size); |
| 1447 | + min-height: var(--textarea-height); |
1460 | 1448 | height: auto; |
1461 | 1449 | resize: vertical; |
1462 | 1450 | overflow: hidden; |
| 1451 | + z-index: 1; |
1463 | 1452 |
|
1464 | 1453 | @if $material-theme { |
1465 | 1454 | padding: 0; |
1466 | | - inset-block-start: rem(-3px); |
1467 | | - } |
1468 | | - |
1469 | | - // resets typography styles |
1470 | | - line-height: normal !important; |
1471 | | - |
1472 | | - z-index: 1; |
1473 | | - |
1474 | | - &:not([type='*']) { |
1475 | | - line-height: normal !important; /* resets typography styles */ |
| 1455 | + // to be fixed |
| 1456 | + inset-block-start: rem(-2px); |
1476 | 1457 | } |
1477 | 1458 | } |
1478 | 1459 |
|
|
1485 | 1466 | } |
1486 | 1467 |
|
1487 | 1468 | @if $material-theme { |
1488 | | - padding-block-start: $input-top-padding; |
| 1469 | + padding-block-start: #{$material-box-top-padding}; |
| 1470 | + } |
| 1471 | + } |
| 1472 | + |
| 1473 | + %textarea-group--outlined { |
| 1474 | + %form-group-textarea-group-bundle-main { |
| 1475 | + padding-block-start: #{$material-border-top-padding}; |
1489 | 1476 | } |
1490 | 1477 | } |
1491 | 1478 |
|
|
1643 | 1630 | display: grid; |
1644 | 1631 | grid-auto-rows: minmax($hint-min-size, auto); |
1645 | 1632 | padding-inline: pad-inline($hint-spacing-inline); |
1646 | | - |
1647 | 1633 | justify-content: space-between; |
1648 | 1634 |
|
1649 | 1635 | > * { |
|
1670 | 1656 | } |
1671 | 1657 |
|
1672 | 1658 | %form-group-helper-item { |
1673 | | - display: flex; |
| 1659 | + @include line-clamp(2, true, true); |
| 1660 | + |
1674 | 1661 | align-items: center; |
1675 | 1662 | position: relative; |
1676 | 1663 | } |
1677 | 1664 |
|
1678 | | - %form-group-helper-item--start { |
1679 | | - justify-content: flex-start; |
1680 | | - } |
| 1665 | + // %form-group-helper-item--start { |
| 1666 | + // justify-content: flex-start; |
| 1667 | + // } |
1681 | 1668 |
|
1682 | | - %form-group-helper-item--end { |
1683 | | - justify-content: flex-end; |
1684 | | - } |
| 1669 | + // %form-group-helper-item--end { |
| 1670 | + // justify-content: flex-end; |
| 1671 | + // } |
1685 | 1672 |
|
1686 | 1673 | %form-group-helper-item--start, |
1687 | 1674 | %form-group-helper-item--end { |
|
1710 | 1697 | [igxPrefix], |
1711 | 1698 | igx-suffix, |
1712 | 1699 | [igxSuffix] { |
1713 | | - padding-inline: pad-inline(rem(6px), rem(8px), rem(10px)); |
| 1700 | + &:not(:empty) { |
| 1701 | + padding-inline: pad-inline(rem(6px), rem(8px), rem(10px)); |
| 1702 | + } |
1714 | 1703 | } |
1715 | 1704 | } |
1716 | 1705 |
|
|
2014 | 2003 | } |
2015 | 2004 |
|
2016 | 2005 | %indigo-textarea { |
2017 | | - padding-block: rem(6px); |
| 2006 | + padding-block: $textarea-top-padding 0; |
2018 | 2007 | padding-inline: pad-inline(rem(2px), rem(4px), rem(6px)); |
2019 | 2008 | inset-block-end: rem(2px); |
2020 | 2009 | } |
2021 | 2010 |
|
2022 | 2011 | %fluent-textarea { |
2023 | | - padding: rem(8px); |
| 2012 | + padding-inline: pad-inline(rem(8px)); |
| 2013 | + padding-block: $textarea-top-padding 0; |
2024 | 2014 | } |
2025 | 2015 |
|
2026 | 2016 | %fluent-input-disabled { |
|
2113 | 2103 | %form-group-prefix-fluent-search, |
2114 | 2104 | %form-group-suffix-fluent-search { |
2115 | 2105 | &:not(:empty) { |
2116 | | - padding-inline: pad-inline(rem(8px), rem(12px), rem(16px)); |
| 2106 | + padding-inline: pad-inline(rem(8px), rem(10px), rem(14px)); |
2117 | 2107 | } |
2118 | 2108 | } |
2119 | 2109 |
|
|
2299 | 2289 | map.get($bootstrap-inline-padding, 'cosy'), |
2300 | 2290 | map.get($bootstrap-inline-padding, 'comfortable') |
2301 | 2291 | ); |
| 2292 | + |
| 2293 | + &:is(textarea) { |
| 2294 | + padding-block: $textarea-top-padding 0; |
| 2295 | + } |
2302 | 2296 | } |
2303 | 2297 |
|
2304 | 2298 | // The :not selector is needed otherwise bootstrap will override the %autofill-background-fix |
|
0 commit comments