diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..24a8e87 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.png filter=lfs diff=lfs merge=lfs -text diff --git a/CHANGELOG.md b/CHANGELOG.md index 083920c..2f797ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 5.3.0 + +- Added `align-start`, `align-center`, and `align-end` classes that align form inputs within their available space. +- Added the ability to include individual buttons into the responsive form grid. +- Updated the preferred form markup to wrap each `
` and `
` pair in a `
`. + ## 5.2.2 - Fixed a bug in `data-auto-grow` fields that would apply a scrollbar inappropriately. diff --git a/dist/semantic-forms.css b/dist/semantic-forms.css index 3c6b9ae..69af85f 100644 --- a/dist/semantic-forms.css +++ b/dist/semantic-forms.css @@ -1,10 +1,13 @@ -form.semanticForms, form.semanticForms.light, table.semanticForms { +form.semanticForms, +form.semanticForms.light, +table.semanticForms { --semanticFormsFontFamily: sans-serif; --semanticFormsFontSize: 16px; --semanticFormsFormBgColor: #fff; --semanticFormsFormSubBgColor: #f5f5f5; --semanticFormsTextColor: #000; --semanticFormsBorderColor: #c0c0c0; + --semanticFormsFocusColor: #c0c0c0; --semanticFormsSubBorderColor: #c0c0c0; --semanticFormsPlaceholderColor: rgba(0, 0, 0, 0.75); --semanticFormsScrollbarColor: #c0c0c0; @@ -19,6 +22,7 @@ form.semanticForms, form.semanticForms.light, table.semanticForms { --semanticFormsInputFontSize: 16px; --semanticFormsInputTopMargin: 15px; --semanticFormsInputMinWidth: 250px; + --semanticFormsInputMaxWidth: 365px; --semanticFormsBorderRadius: 10px; --semanticFormsNestedFieldsetBgColor: oklch(from var(--semanticFormsFormSubBgColor) 0.3 c h / 0.05); --semanticFormsNestedFieldsetBorder: 1px rgba(0, 0, 0, .2) solid; @@ -32,6 +36,95 @@ form.semanticForms, form.semanticForms.light, table.semanticForms { --semanticFormsSelectIcon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23000'%3E%3Cpolygon points='0,0 100,0 50,50'/%3E%3C/svg%3E"); --semanticFormsCustomResizer: url("data:image/svg+xml;utf8,%3Csvg width='20' height='20' viewBox='0 0 5.2916665 5.2916666' version='1.1' id='svg5' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cdefs id='defs2' /%3E%3Cg id='layer1'%3E%3Cpath style='fill:%23aaa;stroke:%23aaa;stroke-width:0.264583;stroke-dasharray:none;stroke-opacity:1' d='M 2.8245112,5.0994569 C 4.9396993,2.9842685 4.9396993,2.9842685 4.9396993,2.9842685' id='path1034' /%3E%3Cpath style='fill:%23aaa;stroke:%23aaa;stroke-width:0.264583;stroke-dasharray:none;stroke-opacity:1' d='M 1.515747,5.0406977 C 4.8873304,1.6691138 4.8873304,1.6691138 4.8873304,1.6691138' id='path1034-1' /%3E%3Cpath style='fill:%23aaa;stroke:%23aaa;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1' d='M 0.20657789,5.0909782 C 4.9312207,0.3663348 4.9312207,0.3663348 4.9312207,0.3663348' id='path1034-9' /%3E%3C/g%3E%3C/svg%3E"); --semanticFormsSearchIcon: url("data:image/svg+xml,%3Csvg%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.7955%2015.8111L21%2021M18%2010.5C18%2014.6421%2014.6421%2018%2010.5%2018C6.35786%2018%203%2014.6421%203%2010.5C3%206.35786%206.35786%203%2010.5%203C14.6421%203%2018%206.35786%2018%2010.5Z%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); + font-family: var(--semanticFormsFontFamily); + font-size: var(--semanticFormsFontSize); + width: 100%; + overflow-x: hidden; +} +form.semanticForms:not(table), +form.semanticForms.light:not(table), +table.semanticForms:not(table) { + display: flex; + flex-direction: column; + gap: 10px; +} +@supports (interpolate-size: allow-keywords) { + form.semanticForms, + form.semanticForms.light, + table.semanticForms { + interpolate-size: allow-keywords; + } +} +form.semanticForms [hidden], +form.semanticForms.light [hidden], +table.semanticForms [hidden] { + display: none !important; +} +form.semanticForms div:has(dd[hidden]), +form.semanticForms.light div:has(dd[hidden]), +table.semanticForms div:has(dd[hidden]) { + display: none !important; +} +form.semanticForms fieldset, +form.semanticForms label, +form.semanticForms input, +form.semanticForms select, +form.semanticForms textarea, +form.semanticForms button, +form.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), +form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), +form.semanticForms dt:has(> input, > select, > textarea), +form.semanticForms dd:has(> input, > select, > textarea, > ul, > menu), +form.semanticForms div:has(dt, dd), +form.semanticForms dd > p, +form.semanticForms.light fieldset, +form.semanticForms.light label, +form.semanticForms.light input, +form.semanticForms.light select, +form.semanticForms.light textarea, +form.semanticForms.light button, +form.semanticForms.light menu:has(li > input, li > label, li > button, li > select, li > textarea), +form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea), +form.semanticForms.light dt:has(> input, > select, > textarea), +form.semanticForms.light dd:has(> input, > select, > textarea, > ul, > menu), +form.semanticForms.light div:has(dt, dd), +form.semanticForms.light dd > p, +table.semanticForms fieldset, +table.semanticForms label, +table.semanticForms input, +table.semanticForms select, +table.semanticForms textarea, +table.semanticForms button, +table.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), +table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), +table.semanticForms dt:has(> input, > select, > textarea), +table.semanticForms dd:has(> input, > select, > textarea, > ul, > menu), +table.semanticForms div:has(dt, dd), +table.semanticForms dd > p { + color: var(--semanticFormsTextColor); + font-family: var(--semanticFormsFontFamily); + box-sizing: border-box; +} +form.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), +form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), +form.semanticForms dt:has(> input, > select, > textarea), +form.semanticForms dd:has(> input, > select, > textarea, > ul, > menu), +form.semanticForms div:has(dt, dd), +form.semanticForms dd > p, +form.semanticForms.light menu:has(li > input, li > label, li > button, li > select, li > textarea), +form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea), +form.semanticForms.light dt:has(> input, > select, > textarea), +form.semanticForms.light dd:has(> input, > select, > textarea, > ul, > menu), +form.semanticForms.light div:has(dt, dd), +form.semanticForms.light dd > p, +table.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), +table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), +table.semanticForms dt:has(> input, > select, > textarea), +table.semanticForms dd:has(> input, > select, > textarea, > ul, > menu), +table.semanticForms div:has(dt, dd), +table.semanticForms dd > p { + margin: 0; + padding: 0; } @media (prefers-color-scheme: dark) { @@ -41,6 +134,7 @@ form.semanticForms, form.semanticForms.light, table.semanticForms { --semanticFormsFormSubBgColor: #2f2f2f; --semanticFormsTextColor: #fff; --semanticFormsBorderColor: #656565; + --semanticFormsFocusColor: #656565; --semanticFormsSubBorderColor: #3f3f3f; --semanticFormsPlaceholderColor: rgba(255, 255, 255, 0.85); --semanticFormsScrollbarColor: #373737; @@ -70,6 +164,7 @@ html:not(.light) body:not(.light) form.semanticForms.dark, html:not(.light) body --semanticFormsFormSubBgColor: #2f2f2f; --semanticFormsTextColor: #fff; --semanticFormsBorderColor: #656565; + --semanticFormsFocusColor: #656565; --semanticFormsSubBorderColor: #3f3f3f; --semanticFormsPlaceholderColor: rgba(255, 255, 255, 0.85); --semanticFormsScrollbarColor: #373737; @@ -93,12 +188,14 @@ html:not(.light) body:not(.light) form.semanticForms.dark input::-webkit-calenda filter: invert(100%); } -form.semanticForms.dark, table.semanticForms.dark { +form.semanticForms.dark, +table.semanticForms.dark { --semanticFormsFormBgColor: #555; --inputBackgroudColor: rgba(85,85,85,0.1); --semanticFormsFormSubBgColor: #2f2f2f; --semanticFormsTextColor: #fff; --semanticFormsBorderColor: #656565; + --semanticFormsFocusColor: #656565; --semanticFormsSubBorderColor: #3f3f3f; --semanticFormsPlaceholderColor: rgba(255, 255, 255, 0.85); --semanticFormsScrollbarColor: #373737; @@ -118,122 +215,29 @@ form.semanticForms.dark, table.semanticForms.dark { --semanticFormsCustomResizer: url("data:image/svg+xml;utf8,%3Csvg width='20' height='20' viewBox='0 0 5.2916665 5.2916666' version='1.1' id='svg5' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cdefs id='defs2' /%3E%3Cg id='layer1'%3E%3Cpath style='fill:%23c9c9c9;stroke:%23c9c9c9;stroke-width:0.264583;stroke-dasharray:none;stroke-opacity:1' d='M 2.8245112,5.0994569 C 4.9396993,2.9842685 4.9396993,2.9842685 4.9396993,2.9842685' id='path1034' /%3E%3Cpath style='fill:%23c9c9c9;stroke:%23c9c9c9;stroke-width:0.264583;stroke-dasharray:none;stroke-opacity:1' d='M 1.515747,5.0406977 C 4.8873304,1.6691138 4.8873304,1.6691138 4.8873304,1.6691138' id='path1034-1' /%3E%3Cpath style='fill:%23c9c9c9;stroke:%23c9c9c9;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1' d='M 0.20657789,5.0909782 C 4.9312207,0.3663348 4.9312207,0.3663348 4.9312207,0.3663348' id='path1034-9' /%3E%3C/g%3E%3C/svg%3E"); --semanticFormsSearchIcon: url("data:image/svg+xml,%3Csvg%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.7955%2015.8111L21%2021M18%2010.5C18%2014.6421%2014.6421%2018%2010.5%2018C6.35786%2018%203%2014.6421%203%2010.5C3%206.35786%206.35786%203%2010.5%203C14.6421%203%2018%206.35786%2018%2010.5Z%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); } -form.semanticForms.dark input::-webkit-calendar-picker-indicator, table.semanticForms.dark input::-webkit-calendar-picker-indicator { +form.semanticForms.dark input::-webkit-calendar-picker-indicator, +table.semanticForms.dark input::-webkit-calendar-picker-indicator { filter: invert(100%); } -form.semanticForms, -form.semanticForms.light, -table.semanticForms, -table.semanticForms.light { - font-family: var(--semanticFormsFontFamily); - font-size: var(--semanticFormsFontSize); - width: 100%; -} -@supports (interpolate-size: allow-keywords) { - form.semanticForms, - form.semanticForms.light, - table.semanticForms, - table.semanticForms.light { - interpolate-size: allow-keywords; - } -} -form.semanticForms [hidden], -form.semanticForms.light [hidden], -table.semanticForms [hidden], -table.semanticForms.light [hidden] { - display: none !important; -} -form.semanticForms div:has(dd[hidden]), -form.semanticForms.light div:has(dd[hidden]), -table.semanticForms div:has(dd[hidden]), -table.semanticForms.light div:has(dd[hidden]) { - display: none !important; +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio]), +.semanticForms select { + height: var(--semanticFormsInputHeight); } -form.semanticForms:not(table), -form.semanticForms.light:not(table), -table.semanticForms:not(table), -table.semanticForms.light:not(table) { - display: flex; - flex-direction: column; - gap: 10px; +.semanticForms input[type=checkbox], +.semanticForms input[type=radio] { + width: 18px; + height: 18px; + margin: 3px 0; + cursor: pointer; } -form.semanticForms fieldset, -form.semanticForms label, -form.semanticForms input, -form.semanticForms select, -form.semanticForms textarea, -form.semanticForms button, -form.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), -form.semanticForms dt:has(> input, > select, > textarea), -form.semanticForms dd:has(> input, > select, > textarea, > ul, > menu), -form.semanticForms div:has(dt, dd), -form.semanticForms dd > p, -form.semanticForms.light fieldset, -form.semanticForms.light label, -form.semanticForms.light input, -form.semanticForms.light select, -form.semanticForms.light textarea, -form.semanticForms.light button, -form.semanticForms.light menu:has(li > input, li > label, li > button, li > select, li > textarea), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea), -form.semanticForms.light dt:has(> input, > select, > textarea), -form.semanticForms.light dd:has(> input, > select, > textarea, > ul, > menu), -form.semanticForms.light div:has(dt, dd), -form.semanticForms.light dd > p, -table.semanticForms fieldset, -table.semanticForms label, -table.semanticForms input, -table.semanticForms select, -table.semanticForms textarea, -table.semanticForms button, -table.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), -table.semanticForms dt:has(> input, > select, > textarea), -table.semanticForms dd:has(> input, > select, > textarea, > ul, > menu), -table.semanticForms div:has(dt, dd), -table.semanticForms dd > p, -table.semanticForms.light fieldset, -table.semanticForms.light label, -table.semanticForms.light input, -table.semanticForms.light select, -table.semanticForms.light textarea, -table.semanticForms.light button, -table.semanticForms.light menu:has(li > input, li > label, li > button, li > select, li > textarea), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea), -table.semanticForms.light dt:has(> input, > select, > textarea), -table.semanticForms.light dd:has(> input, > select, > textarea, > ul, > menu), -table.semanticForms.light div:has(dt, dd), -table.semanticForms.light dd > p { +.semanticForms input[type=checkbox] ~ label:first-of-type, +.semanticForms input[type=radio] ~ label:first-of-type { color: var(--semanticFormsTextColor); - font-family: var(--semanticFormsFontFamily); - box-sizing: border-box; - margin: 0; - padding: 0; -} -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -form.semanticForms select, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -form.semanticForms.light select, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -table.semanticForms select, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -table.semanticForms.light select { - height: var(--semanticFormsInputHeight); } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -form.semanticForms select, -form.semanticForms textarea, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -form.semanticForms.light select, -form.semanticForms.light textarea, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -table.semanticForms select, -table.semanticForms textarea, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -table.semanticForms.light select, -table.semanticForms.light textarea { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio]), +.semanticForms select, +.semanticForms textarea { font-size: var(--semanticFormsInputFontSize); background: var(--semanticFormsFormBgColor); border: var(--semanticFormsBorder); @@ -242,301 +246,83 @@ table.semanticForms.light textarea { touch-action: manipulation; outline: none; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]):not([type=range]), -form.semanticForms select:not([type=range]), -form.semanticForms textarea:not([type=range]), -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]):not([type=range]), -form.semanticForms.light select:not([type=range]), -form.semanticForms.light textarea:not([type=range]), -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]):not([type=range]), -table.semanticForms select:not([type=range]), -table.semanticForms textarea:not([type=range]), -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]):not([type=range]), -table.semanticForms.light select:not([type=range]), -table.semanticForms.light textarea:not([type=range]) { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio]):focus, +.semanticForms select:focus, +.semanticForms textarea:focus { + outline: none; + box-shadow: 0 0 0 1px var(--semanticFormsFocusColor); +} +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio]):not([type=range]), +.semanticForms select:not([type=range]), +.semanticForms textarea:not([type=range]) { padding: 6px 30px 6px 20px; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) input:not([type=submit], [type=reset], [type=image]):focus, -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) select:focus, -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) textarea:focus, -form.semanticForms select input:not([type=submit], [type=reset], [type=image]):focus, -form.semanticForms select select:focus, -form.semanticForms select textarea:focus, -form.semanticForms textarea input:not([type=submit], [type=reset], [type=image]):focus, -form.semanticForms textarea select:focus, -form.semanticForms textarea textarea:focus, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) input:not([type=submit], [type=reset], [type=image]):focus, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) select:focus, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) textarea:focus, -form.semanticForms.light select input:not([type=submit], [type=reset], [type=image]):focus, -form.semanticForms.light select select:focus, -form.semanticForms.light select textarea:focus, -form.semanticForms.light textarea input:not([type=submit], [type=reset], [type=image]):focus, -form.semanticForms.light textarea select:focus, -form.semanticForms.light textarea textarea:focus, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) input:not([type=submit], [type=reset], [type=image]):focus, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) select:focus, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) textarea:focus, -table.semanticForms select input:not([type=submit], [type=reset], [type=image]):focus, -table.semanticForms select select:focus, -table.semanticForms select textarea:focus, -table.semanticForms textarea input:not([type=submit], [type=reset], [type=image]):focus, -table.semanticForms textarea select:focus, -table.semanticForms textarea textarea:focus, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) input:not([type=submit], [type=reset], [type=image]):focus, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) select:focus, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]) textarea:focus, -table.semanticForms.light select input:not([type=submit], [type=reset], [type=image]):focus, -table.semanticForms.light select select:focus, -table.semanticForms.light select textarea:focus, -table.semanticForms.light textarea input:not([type=submit], [type=reset], [type=image]):focus, -table.semanticForms.light textarea select:focus, -table.semanticForms.light textarea textarea:focus { - outline: none; - box-shadow: 0 0 0 1px var(--semanticFormsBorderColor); -} -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=password], form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=text]:has(~ button.show), -form.semanticForms select[type=password], -form.semanticForms select[type=text]:has(~ button.show), -form.semanticForms textarea[type=password], -form.semanticForms textarea[type=text]:has(~ button.show), -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=password], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=text]:has(~ button.show), -form.semanticForms.light select[type=password], -form.semanticForms.light select[type=text]:has(~ button.show), -form.semanticForms.light textarea[type=password], -form.semanticForms.light textarea[type=text]:has(~ button.show), -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=password], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=text]:has(~ button.show), -table.semanticForms select[type=password], -table.semanticForms select[type=text]:has(~ button.show), -table.semanticForms textarea[type=password], -table.semanticForms textarea[type=text]:has(~ button.show), -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=password], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=text]:has(~ button.show), -table.semanticForms.light select[type=password], -table.semanticForms.light select[type=text]:has(~ button.show), -table.semanticForms.light textarea[type=password], -table.semanticForms.light textarea[type=text]:has(~ button.show) { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=password], .semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=text]:has(~ button.show), +.semanticForms select[type=password], +.semanticForms select[type=text]:has(~ button.show), +.semanticForms textarea[type=password], +.semanticForms textarea[type=text]:has(~ button.show) { padding: 6px 55px 6px 20px; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search], -form.semanticForms select[type=search], -form.semanticForms textarea[type=search], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search], -form.semanticForms.light select[type=search], -form.semanticForms.light textarea[type=search], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search], -table.semanticForms select[type=search], -table.semanticForms textarea[type=search], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search], -table.semanticForms.light select[type=search], -table.semanticForms.light textarea[type=search] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=search], +.semanticForms select[type=search], +.semanticForms textarea[type=search] { padding: 6px 20px 6px 32px; background: var(--semanticFormsSearchIcon) no-repeat 10px; background-color: var(--semanticFormsFormBgColor); background-size: 18px; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:focus + label.floatLabelFormAnimatedLabel, form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -form.semanticForms select[type=search]:focus + label.floatLabelFormAnimatedLabel, -form.semanticForms select[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -form.semanticForms textarea[type=search]:focus + label.floatLabelFormAnimatedLabel, -form.semanticForms textarea[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:focus + label.floatLabelFormAnimatedLabel, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -form.semanticForms.light select[type=search]:focus + label.floatLabelFormAnimatedLabel, -form.semanticForms.light select[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -form.semanticForms.light textarea[type=search]:focus + label.floatLabelFormAnimatedLabel, -form.semanticForms.light textarea[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:focus + label.floatLabelFormAnimatedLabel, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -table.semanticForms select[type=search]:focus + label.floatLabelFormAnimatedLabel, -table.semanticForms select[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -table.semanticForms textarea[type=search]:focus + label.floatLabelFormAnimatedLabel, -table.semanticForms textarea[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:focus + label.floatLabelFormAnimatedLabel, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -table.semanticForms.light select[type=search]:focus + label.floatLabelFormAnimatedLabel, -table.semanticForms.light select[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, -table.semanticForms.light textarea[type=search]:focus + label.floatLabelFormAnimatedLabel, -table.semanticForms.light textarea[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=search]:focus + label.floatLabelFormAnimatedLabel, .semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, +.semanticForms select[type=search]:focus + label.floatLabelFormAnimatedLabel, +.semanticForms select[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel, +.semanticForms textarea[type=search]:focus + label.floatLabelFormAnimatedLabel, +.semanticForms textarea[type=search]:not(:placeholder-shown) + label.floatLabelFormAnimatedLabel { left: 20px; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]::-webkit-search-cancel-button, -form.semanticForms select[type=search]::-webkit-search-cancel-button, -form.semanticForms textarea[type=search]::-webkit-search-cancel-button, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]::-webkit-search-cancel-button, -form.semanticForms.light select[type=search]::-webkit-search-cancel-button, -form.semanticForms.light textarea[type=search]::-webkit-search-cancel-button, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]::-webkit-search-cancel-button, -table.semanticForms select[type=search]::-webkit-search-cancel-button, -table.semanticForms textarea[type=search]::-webkit-search-cancel-button, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=search]::-webkit-search-cancel-button, -table.semanticForms.light select[type=search]::-webkit-search-cancel-button, -table.semanticForms.light textarea[type=search]::-webkit-search-cancel-button { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=search]::-webkit-search-cancel-button, +.semanticForms select[type=search]::-webkit-search-cancel-button, +.semanticForms textarea[type=search]::-webkit-search-cancel-button { display: none; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox], form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio], -form.semanticForms select[type=checkbox], -form.semanticForms select[type=radio], -form.semanticForms textarea[type=checkbox], -form.semanticForms textarea[type=radio], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio], -form.semanticForms.light select[type=checkbox], -form.semanticForms.light select[type=radio], -form.semanticForms.light textarea[type=checkbox], -form.semanticForms.light textarea[type=radio], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio], -table.semanticForms select[type=checkbox], -table.semanticForms select[type=radio], -table.semanticForms textarea[type=checkbox], -table.semanticForms textarea[type=radio], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio], -table.semanticForms.light select[type=checkbox], -table.semanticForms.light select[type=radio], -table.semanticForms.light textarea[type=checkbox], -table.semanticForms.light textarea[type=radio] { - width: 18px; - height: 18px; - margin: 3px 0; - cursor: pointer; -} -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox] ~ label:first-of-type, form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio] ~ label:first-of-type, -form.semanticForms select[type=checkbox] ~ label:first-of-type, -form.semanticForms select[type=radio] ~ label:first-of-type, -form.semanticForms textarea[type=checkbox] ~ label:first-of-type, -form.semanticForms textarea[type=radio] ~ label:first-of-type, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox] ~ label:first-of-type, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio] ~ label:first-of-type, -form.semanticForms.light select[type=checkbox] ~ label:first-of-type, -form.semanticForms.light select[type=radio] ~ label:first-of-type, -form.semanticForms.light textarea[type=checkbox] ~ label:first-of-type, -form.semanticForms.light textarea[type=radio] ~ label:first-of-type, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox] ~ label:first-of-type, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio] ~ label:first-of-type, -table.semanticForms select[type=checkbox] ~ label:first-of-type, -table.semanticForms select[type=radio] ~ label:first-of-type, -table.semanticForms textarea[type=checkbox] ~ label:first-of-type, -table.semanticForms textarea[type=radio] ~ label:first-of-type, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=checkbox] ~ label:first-of-type, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=radio] ~ label:first-of-type, -table.semanticForms.light select[type=checkbox] ~ label:first-of-type, -table.semanticForms.light select[type=radio] ~ label:first-of-type, -table.semanticForms.light textarea[type=checkbox] ~ label:first-of-type, -table.semanticForms.light textarea[type=radio] ~ label:first-of-type { - color: var(--semanticFormsTextColor); -} -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=range], form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -form.semanticForms select[type=range], -form.semanticForms select[type=color], -form.semanticForms textarea[type=range], -form.semanticForms textarea[type=color], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=range], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -form.semanticForms.light select[type=range], -form.semanticForms.light select[type=color], -form.semanticForms.light textarea[type=range], -form.semanticForms.light textarea[type=color], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=range], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -table.semanticForms select[type=range], -table.semanticForms select[type=color], -table.semanticForms textarea[type=range], -table.semanticForms textarea[type=color], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=range], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -table.semanticForms.light select[type=range], -table.semanticForms.light select[type=color], -table.semanticForms.light textarea[type=range], -table.semanticForms.light textarea[type=color] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=range], .semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=color], +.semanticForms select[type=range], +.semanticForms select[type=color], +.semanticForms textarea[type=range], +.semanticForms textarea[type=color] { cursor: pointer; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -form.semanticForms select[type=color], -form.semanticForms textarea[type=color], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -form.semanticForms.light select[type=color], -form.semanticForms.light textarea[type=color], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -table.semanticForms select[type=color], -table.semanticForms textarea[type=color], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=color], -table.semanticForms.light select[type=color], -table.semanticForms.light textarea[type=color] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=color], +.semanticForms select[type=color], +.semanticForms textarea[type=color] { height: var(--semanticFormsInputHeight); padding: 4px 30px 4px 10px; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=file], -form.semanticForms select[type=file], -form.semanticForms textarea[type=file], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=file], -form.semanticForms.light select[type=file], -form.semanticForms.light textarea[type=file], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=file], -table.semanticForms select[type=file], -table.semanticForms textarea[type=file], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[type=file], -table.semanticForms.light select[type=file], -table.semanticForms.light textarea[type=file] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[type=file], +.semanticForms select[type=file], +.semanticForms textarea[type=file] { cursor: pointer; font-size: var(--semanticFormsInputFontSize); } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled], -form.semanticForms select[disabled], -form.semanticForms textarea[disabled], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled], -form.semanticForms.light select[disabled], -form.semanticForms.light textarea[disabled], -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled], -table.semanticForms select[disabled], -table.semanticForms textarea[disabled], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled], -table.semanticForms.light select[disabled], -table.semanticForms.light textarea[disabled] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[disabled], +.semanticForms select[disabled], +.semanticForms textarea[disabled] { cursor: not-allowed; opacity: 0.5; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label:first-of-type, -form.semanticForms select[disabled] ~ label:first-of-type, -form.semanticForms textarea[disabled] ~ label:first-of-type, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label:first-of-type, -form.semanticForms.light select[disabled] ~ label:first-of-type, -form.semanticForms.light textarea[disabled] ~ label:first-of-type, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label:first-of-type, -table.semanticForms select[disabled] ~ label:first-of-type, -table.semanticForms textarea[disabled] ~ label:first-of-type, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label:first-of-type, -table.semanticForms.light select[disabled] ~ label:first-of-type, -table.semanticForms.light textarea[disabled] ~ label:first-of-type { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[disabled] ~ label:first-of-type, +.semanticForms select[disabled] ~ label:first-of-type, +.semanticForms textarea[disabled] ~ label:first-of-type { opacity: 0.5; } -form.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label + button, -form.semanticForms select[disabled] ~ label + button, -form.semanticForms textarea[disabled] ~ label + button, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label + button, -form.semanticForms.light select[disabled] ~ label + button, -form.semanticForms.light textarea[disabled] ~ label + button, -table.semanticForms input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label + button, -table.semanticForms select[disabled] ~ label + button, -table.semanticForms textarea[disabled] ~ label + button, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio])[disabled] ~ label + button, -table.semanticForms.light select[disabled] ~ label + button, -table.semanticForms.light textarea[disabled] ~ label + button { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio])[disabled] ~ label + button, +.semanticForms select[disabled] ~ label + button, +.semanticForms textarea[disabled] ~ label + button { display: none; } -form.semanticForms select, -form.semanticForms.light select, -table.semanticForms select, -table.semanticForms.light select { +.semanticForms select { cursor: pointer; } -form.semanticForms select:not([multiple]), -form.semanticForms.light select:not([multiple]), -table.semanticForms select:not([multiple]), -table.semanticForms.light select:not([multiple]) { +.semanticForms select:not([multiple]) { background-image: var(--semanticFormsSelectIcon); background-size: 14px; background-position: calc(100% - 8px) 16px; @@ -545,54 +331,30 @@ table.semanticForms.light select:not([multiple]) { -moz-appearance: none; appearance: none; } -form.semanticForms select[multiple], -form.semanticForms.light select[multiple], -table.semanticForms select[multiple], -table.semanticForms.light select[multiple] { +.semanticForms select[multiple] { min-height: 38px; height: 100px; padding: 0; } -form.semanticForms select[multiple] option, -form.semanticForms.light select[multiple] option, -table.semanticForms select[multiple] option, -table.semanticForms.light select[multiple] option { +.semanticForms select[multiple] option { padding: 6px 20px; } -form.semanticForms select[multiple] option:first-of-type, -form.semanticForms.light select[multiple] option:first-of-type, -table.semanticForms select[multiple] option:first-of-type, -table.semanticForms.light select[multiple] option:first-of-type { +.semanticForms select[multiple] option:first-of-type { border-top-left-radius: var(--semanticFormsBorderRadius); } -form.semanticForms select[multiple] option:last-of-type, -form.semanticForms.light select[multiple] option:last-of-type, -table.semanticForms select[multiple] option:last-of-type, -table.semanticForms.light select[multiple] option:last-of-type { +.semanticForms select[multiple] option:last-of-type { border-bottom-left-radius: var(--semanticFormsBorderRadius); } -form.semanticForms textarea, -form.semanticForms.light textarea, -table.semanticForms textarea, -table.semanticForms.light textarea { +.semanticForms textarea { resize: vertical; line-height: 1.5; width: 100%; min-height: 38px; } -form.semanticForms textarea[data-auto-grow], -form.semanticForms.light textarea[data-auto-grow], -table.semanticForms textarea[data-auto-grow], -table.semanticForms.light textarea[data-auto-grow] { +.semanticForms textarea[data-auto-grow] { field-sizing: content; } -form.semanticForms button.clear, form.semanticForms button.show, -form.semanticForms.light button.clear, -form.semanticForms.light button.show, -table.semanticForms button.clear, -table.semanticForms button.show, -table.semanticForms.light button.clear, -table.semanticForms.light button.show { +.semanticForms button.clear, .semanticForms button.show { cursor: pointer; appearance: none; -webkit-appearance: none; @@ -611,52 +373,26 @@ table.semanticForms.light button.show { align-items: center; justify-content: center; } -form.semanticForms button.show, -form.semanticForms.light button.show, -table.semanticForms button.show, -table.semanticForms.light button.show { +.semanticForms button.show { right: 25px; } -form.semanticForms textarea ~ .clear, -form.semanticForms.light textarea ~ .clear, -table.semanticForms textarea ~ .clear, -table.semanticForms.light textarea ~ .clear { +.semanticForms button.show svg { + height: 100%; +} +.semanticForms textarea ~ .clear { bottom: auto; } -form.semanticForms input:placeholder-shown ~ .clear, -form.semanticForms input:placeholder-shown ~ .show, -form.semanticForms textarea:placeholder-shown ~ .clear, -form.semanticForms input[type=file] ~ .clear, -form.semanticForms.light input:placeholder-shown ~ .clear, -form.semanticForms.light input:placeholder-shown ~ .show, -form.semanticForms.light textarea:placeholder-shown ~ .clear, -form.semanticForms.light input[type=file] ~ .clear, -table.semanticForms input:placeholder-shown ~ .clear, -table.semanticForms input:placeholder-shown ~ .show, -table.semanticForms textarea:placeholder-shown ~ .clear, -table.semanticForms input[type=file] ~ .clear, -table.semanticForms.light input:placeholder-shown ~ .clear, -table.semanticForms.light input:placeholder-shown ~ .show, -table.semanticForms.light textarea:placeholder-shown ~ .clear, -table.semanticForms.light input[type=file] ~ .clear { +.semanticForms input:placeholder-shown ~ .clear, +.semanticForms input:placeholder-shown ~ .show, +.semanticForms textarea:placeholder-shown ~ .clear, +.semanticForms input[type=file] ~ .clear { display: none; } -form.semanticForms input[type=submit], -form.semanticForms input[type=reset], -form.semanticForms button:not(.clear, .show), -form.semanticForms .button-link, -form.semanticForms.light input[type=submit], -form.semanticForms.light input[type=reset], -form.semanticForms.light button:not(.clear, .show), -form.semanticForms.light .button-link, -table.semanticForms input[type=submit], -table.semanticForms input[type=reset], -table.semanticForms button:not(.clear, .show), -table.semanticForms .button-link, -table.semanticForms.light input[type=submit], -table.semanticForms.light input[type=reset], -table.semanticForms.light button:not(.clear, .show), -table.semanticForms.light .button-link { +.semanticForms input[type=submit], +.semanticForms input[type=reset], +.semanticForms input[type=button], +.semanticForms button:not(.clear, .show), +.semanticForms .button-link { appearance: none; -moz-appearance: none; -webkit-appearance: none; @@ -676,787 +412,199 @@ table.semanticForms.light .button-link { text-decoration: none; color: var(--semanticFormsTextColor); } -form.semanticForms input[type=submit]:active, -form.semanticForms input[type=reset]:active, -form.semanticForms button:not(.clear, .show):active, -form.semanticForms .button-link:active, -form.semanticForms.light input[type=submit]:active, -form.semanticForms.light input[type=reset]:active, -form.semanticForms.light button:not(.clear, .show):active, -form.semanticForms.light .button-link:active, -table.semanticForms input[type=submit]:active, -table.semanticForms input[type=reset]:active, -table.semanticForms button:not(.clear, .show):active, -table.semanticForms .button-link:active, -table.semanticForms.light input[type=submit]:active, -table.semanticForms.light input[type=reset]:active, -table.semanticForms.light button:not(.clear, .show):active, -table.semanticForms.light .button-link:active { +.semanticForms input[type=submit]:active, +.semanticForms input[type=reset]:active, +.semanticForms input[type=button]:active, +.semanticForms button:not(.clear, .show):active, +.semanticForms .button-link:active { transform: scale(0.97); } -form.semanticForms input[type=submit], -form.semanticForms input[type=reset], -form.semanticForms input[type=image], -form.semanticForms button:not(.clear):not(.show), -form.semanticForms .button-link, -form.semanticForms.light input[type=submit], -form.semanticForms.light input[type=reset], -form.semanticForms.light input[type=image], -form.semanticForms.light button:not(.clear):not(.show), -form.semanticForms.light .button-link, -table.semanticForms input[type=submit], -table.semanticForms input[type=reset], -table.semanticForms input[type=image], -table.semanticForms button:not(.clear):not(.show), -table.semanticForms .button-link, -table.semanticForms.light input[type=submit], -table.semanticForms.light input[type=reset], -table.semanticForms.light input[type=image], -table.semanticForms.light button:not(.clear):not(.show), -table.semanticForms.light .button-link { +.semanticForms input[type=submit], +.semanticForms input[type=reset], +.semanticForms input[type=button], +.semanticForms input[type=image], +.semanticForms button:not(.clear):not(.show), +.semanticForms .button-link { transition: filter 0.1s; } -form.semanticForms input[type=submit]:hover, -form.semanticForms input[type=reset]:hover, -form.semanticForms input[type=image]:hover, -form.semanticForms button:not(.clear):not(.show):hover, -form.semanticForms .button-link:hover, -form.semanticForms.light input[type=submit]:hover, -form.semanticForms.light input[type=reset]:hover, -form.semanticForms.light input[type=image]:hover, -form.semanticForms.light button:not(.clear):not(.show):hover, -form.semanticForms.light .button-link:hover, -table.semanticForms input[type=submit]:hover, -table.semanticForms input[type=reset]:hover, -table.semanticForms input[type=image]:hover, -table.semanticForms button:not(.clear):not(.show):hover, -table.semanticForms .button-link:hover, -table.semanticForms.light input[type=submit]:hover, -table.semanticForms.light input[type=reset]:hover, -table.semanticForms.light input[type=image]:hover, -table.semanticForms.light button:not(.clear):not(.show):hover, -table.semanticForms.light .button-link:hover { +.semanticForms input[type=submit]:hover, +.semanticForms input[type=reset]:hover, +.semanticForms input[type=button]:hover, +.semanticForms input[type=image]:hover, +.semanticForms button:not(.clear):not(.show):hover, +.semanticForms .button-link:hover { filter: brightness(1.05); } -form.semanticForms .button-link, -form.semanticForms.light .button-link, -table.semanticForms .button-link, -table.semanticForms.light .button-link { +.semanticForms .button-link { display: block; } -form.semanticForms .button-link:visited, form.semanticForms .button-link:link, -form.semanticForms.light .button-link:visited, -form.semanticForms.light .button-link:link, -table.semanticForms .button-link:visited, -table.semanticForms .button-link:link, -table.semanticForms.light .button-link:visited, -table.semanticForms.light .button-link:link { +.semanticForms .button-link:visited, .semanticForms .button-link:link { color: var(--semanticFormsTextColor); } -form.semanticForms [data-invalid-text], -form.semanticForms.light [data-invalid-text], -table.semanticForms [data-invalid-text], -table.semanticForms.light [data-invalid-text] { +.semanticForms [data-invalid-text] { display: none; color: var(--semanticFormsInvalid); } -form.semanticForms input:not([type=submit], [type=reset], [type=image]).invalid, form.semanticForms input:not([type=submit], [type=reset], [type=image]):user-invalid, -form.semanticForms select.invalid, -form.semanticForms select:user-invalid, -form.semanticForms textarea.invalid, -form.semanticForms textarea:user-invalid, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]).invalid, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]):user-invalid, -form.semanticForms.light select.invalid, -form.semanticForms.light select:user-invalid, -form.semanticForms.light textarea.invalid, -form.semanticForms.light textarea:user-invalid, -table.semanticForms input:not([type=submit], [type=reset], [type=image]).invalid, -table.semanticForms input:not([type=submit], [type=reset], [type=image]):user-invalid, -table.semanticForms select.invalid, -table.semanticForms select:user-invalid, -table.semanticForms textarea.invalid, -table.semanticForms textarea:user-invalid, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]).invalid, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]):user-invalid, -table.semanticForms.light select.invalid, -table.semanticForms.light select:user-invalid, -table.semanticForms.light textarea.invalid, -table.semanticForms.light textarea:user-invalid { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]).invalid, .semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]):user-invalid, +.semanticForms select.invalid, +.semanticForms select:user-invalid, +.semanticForms textarea.invalid, +.semanticForms textarea:user-invalid { border: var(--semanticFormsInvalidBorder); } -form.semanticForms input:not([type=submit], [type=reset], [type=image]).invalid ~ label:nth-of-type(2), form.semanticForms input:not([type=submit], [type=reset], [type=image]):user-invalid ~ label:nth-of-type(2), -form.semanticForms select.invalid ~ label:nth-of-type(2), -form.semanticForms select:user-invalid ~ label:nth-of-type(2), -form.semanticForms textarea.invalid ~ label:nth-of-type(2), -form.semanticForms textarea:user-invalid ~ label:nth-of-type(2), -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]).invalid ~ label:nth-of-type(2), -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]):user-invalid ~ label:nth-of-type(2), -form.semanticForms.light select.invalid ~ label:nth-of-type(2), -form.semanticForms.light select:user-invalid ~ label:nth-of-type(2), -form.semanticForms.light textarea.invalid ~ label:nth-of-type(2), -form.semanticForms.light textarea:user-invalid ~ label:nth-of-type(2), -table.semanticForms input:not([type=submit], [type=reset], [type=image]).invalid ~ label:nth-of-type(2), -table.semanticForms input:not([type=submit], [type=reset], [type=image]):user-invalid ~ label:nth-of-type(2), -table.semanticForms select.invalid ~ label:nth-of-type(2), -table.semanticForms select:user-invalid ~ label:nth-of-type(2), -table.semanticForms textarea.invalid ~ label:nth-of-type(2), -table.semanticForms textarea:user-invalid ~ label:nth-of-type(2), -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]).invalid ~ label:nth-of-type(2), -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]):user-invalid ~ label:nth-of-type(2), -table.semanticForms.light select.invalid ~ label:nth-of-type(2), -table.semanticForms.light select:user-invalid ~ label:nth-of-type(2), -table.semanticForms.light textarea.invalid ~ label:nth-of-type(2), -table.semanticForms.light textarea:user-invalid ~ label:nth-of-type(2) { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]).invalid ~ label:nth-of-type(2), .semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]):user-invalid ~ label:nth-of-type(2), +.semanticForms select.invalid ~ label:nth-of-type(2), +.semanticForms select:user-invalid ~ label:nth-of-type(2), +.semanticForms textarea.invalid ~ label:nth-of-type(2), +.semanticForms textarea:user-invalid ~ label:nth-of-type(2) { color: var(--semanticFormsInvalid); } -form.semanticForms input:not([type=submit], [type=reset], [type=image]).invalid ~ [data-invalid-text], form.semanticForms input:not([type=submit], [type=reset], [type=image]):user-invalid ~ [data-invalid-text], -form.semanticForms select.invalid ~ [data-invalid-text], -form.semanticForms select:user-invalid ~ [data-invalid-text], -form.semanticForms textarea.invalid ~ [data-invalid-text], -form.semanticForms textarea:user-invalid ~ [data-invalid-text], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]).invalid ~ [data-invalid-text], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]):user-invalid ~ [data-invalid-text], -form.semanticForms.light select.invalid ~ [data-invalid-text], -form.semanticForms.light select:user-invalid ~ [data-invalid-text], -form.semanticForms.light textarea.invalid ~ [data-invalid-text], -form.semanticForms.light textarea:user-invalid ~ [data-invalid-text], -table.semanticForms input:not([type=submit], [type=reset], [type=image]).invalid ~ [data-invalid-text], -table.semanticForms input:not([type=submit], [type=reset], [type=image]):user-invalid ~ [data-invalid-text], -table.semanticForms select.invalid ~ [data-invalid-text], -table.semanticForms select:user-invalid ~ [data-invalid-text], -table.semanticForms textarea.invalid ~ [data-invalid-text], -table.semanticForms textarea:user-invalid ~ [data-invalid-text], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]).invalid ~ [data-invalid-text], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]):user-invalid ~ [data-invalid-text], -table.semanticForms.light select.invalid ~ [data-invalid-text], -table.semanticForms.light select:user-invalid ~ [data-invalid-text], -table.semanticForms.light textarea.invalid ~ [data-invalid-text], -table.semanticForms.light textarea:user-invalid ~ [data-invalid-text] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]).invalid ~ [data-invalid-text], .semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]):user-invalid ~ [data-invalid-text], +.semanticForms select.invalid ~ [data-invalid-text], +.semanticForms select:user-invalid ~ [data-invalid-text], +.semanticForms textarea.invalid ~ [data-invalid-text], +.semanticForms textarea:user-invalid ~ [data-invalid-text] { font-size: small; display: flex; } -form.semanticForms input:not([type=submit], [type=reset], [type=image]).warn, -form.semanticForms select.warn, -form.semanticForms textarea.warn, -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]).warn, -form.semanticForms.light select.warn, -form.semanticForms.light textarea.warn, -table.semanticForms input:not([type=submit], [type=reset], [type=image]).warn, -table.semanticForms select.warn, -table.semanticForms textarea.warn, -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]).warn, -table.semanticForms.light select.warn, -table.semanticForms.light textarea.warn { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]).warn, +.semanticForms select.warn, +.semanticForms textarea.warn { border: var(--semanticFormsWarnBorder); } -form.semanticForms input:not([type=submit], [type=reset], [type=image]).warn ~ label:nth-of-type(2), -form.semanticForms select.warn ~ label:nth-of-type(2), -form.semanticForms textarea.warn ~ label:nth-of-type(2), -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]).warn ~ label:nth-of-type(2), -form.semanticForms.light select.warn ~ label:nth-of-type(2), -form.semanticForms.light textarea.warn ~ label:nth-of-type(2), -table.semanticForms input:not([type=submit], [type=reset], [type=image]).warn ~ label:nth-of-type(2), -table.semanticForms select.warn ~ label:nth-of-type(2), -table.semanticForms textarea.warn ~ label:nth-of-type(2), -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]).warn ~ label:nth-of-type(2), -table.semanticForms.light select.warn ~ label:nth-of-type(2), -table.semanticForms.light textarea.warn ~ label:nth-of-type(2) { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]).warn ~ label:nth-of-type(2), +.semanticForms select.warn ~ label:nth-of-type(2), +.semanticForms textarea.warn ~ label:nth-of-type(2) { color: var(--semanticFormsWarn); } -form.semanticForms input:not([type=submit], [type=reset], [type=image]).warn ~ [data-invalid-text], -form.semanticForms select.warn ~ [data-invalid-text], -form.semanticForms textarea.warn ~ [data-invalid-text], -form.semanticForms.light input:not([type=submit], [type=reset], [type=image]).warn ~ [data-invalid-text], -form.semanticForms.light select.warn ~ [data-invalid-text], -form.semanticForms.light textarea.warn ~ [data-invalid-text], -table.semanticForms input:not([type=submit], [type=reset], [type=image]).warn ~ [data-invalid-text], -table.semanticForms select.warn ~ [data-invalid-text], -table.semanticForms textarea.warn ~ [data-invalid-text], -table.semanticForms.light input:not([type=submit], [type=reset], [type=image]).warn ~ [data-invalid-text], -table.semanticForms.light select.warn ~ [data-invalid-text], -table.semanticForms.light textarea.warn ~ [data-invalid-text] { +.semanticForms input:not([type=submit], [type=reset], [type=button], [type=image]).warn ~ [data-invalid-text], +.semanticForms select.warn ~ [data-invalid-text], +.semanticForms textarea.warn ~ [data-invalid-text] { font-size: small; display: flex; } -form.semanticForms input:-webkit-autofill, -form.semanticForms input:-webkit-autofill:hover, -form.semanticForms input:-webkit-autofill:focus, -form.semanticForms input:-webkit-autofill:active, -form.semanticForms textarea:-webkit-autofill, -form.semanticForms textarea:-webkit-autofill:hover, -form.semanticForms textarea:-webkit-autofill:focus, -form.semanticForms textarea:-webkit-autofill:active, -form.semanticForms select:-webkit-autofill, -form.semanticForms select:-webkit-autofill:hover, -form.semanticForms select:-webkit-autofill:focus, -form.semanticForms select:-webkit-autofill:active, -form.semanticForms.light input:-webkit-autofill, -form.semanticForms.light input:-webkit-autofill:hover, -form.semanticForms.light input:-webkit-autofill:focus, -form.semanticForms.light input:-webkit-autofill:active, -form.semanticForms.light textarea:-webkit-autofill, -form.semanticForms.light textarea:-webkit-autofill:hover, -form.semanticForms.light textarea:-webkit-autofill:focus, -form.semanticForms.light textarea:-webkit-autofill:active, -form.semanticForms.light select:-webkit-autofill, -form.semanticForms.light select:-webkit-autofill:hover, -form.semanticForms.light select:-webkit-autofill:focus, -form.semanticForms.light select:-webkit-autofill:active, -table.semanticForms input:-webkit-autofill, -table.semanticForms input:-webkit-autofill:hover, -table.semanticForms input:-webkit-autofill:focus, -table.semanticForms input:-webkit-autofill:active, -table.semanticForms textarea:-webkit-autofill, -table.semanticForms textarea:-webkit-autofill:hover, -table.semanticForms textarea:-webkit-autofill:focus, -table.semanticForms textarea:-webkit-autofill:active, -table.semanticForms select:-webkit-autofill, -table.semanticForms select:-webkit-autofill:hover, -table.semanticForms select:-webkit-autofill:focus, -table.semanticForms select:-webkit-autofill:active, -table.semanticForms.light input:-webkit-autofill, -table.semanticForms.light input:-webkit-autofill:hover, -table.semanticForms.light input:-webkit-autofill:focus, -table.semanticForms.light input:-webkit-autofill:active, -table.semanticForms.light textarea:-webkit-autofill, -table.semanticForms.light textarea:-webkit-autofill:hover, -table.semanticForms.light textarea:-webkit-autofill:focus, -table.semanticForms.light textarea:-webkit-autofill:active, -table.semanticForms.light select:-webkit-autofill, -table.semanticForms.light select:-webkit-autofill:hover, -table.semanticForms.light select:-webkit-autofill:focus, -table.semanticForms.light select:-webkit-autofill:active { +.semanticForms input:-webkit-autofill, +.semanticForms input:-webkit-autofill:hover, +.semanticForms input:-webkit-autofill:focus, +.semanticForms input:-webkit-autofill:active, +.semanticForms textarea:-webkit-autofill, +.semanticForms textarea:-webkit-autofill:hover, +.semanticForms textarea:-webkit-autofill:focus, +.semanticForms textarea:-webkit-autofill:active, +.semanticForms select:-webkit-autofill, +.semanticForms select:-webkit-autofill:hover, +.semanticForms select:-webkit-autofill:focus, +.semanticForms select:-webkit-autofill:active { -webkit-box-shadow: 0 0 0 1000px var(--semanticFormsFormBgColor) inset; transition: background-color 5000s ease-in-out 0s, color 5000s ease-in-out 0s; transition-delay: 5000s; transition-property: background-color, color; } -form.semanticForms fieldset, -form.semanticForms.light fieldset, -table.semanticForms fieldset, -table.semanticForms.light fieldset { - border-radius: var(--semanticFormsBorderRadius); - background: var(--semanticFormsFormSubBgColor); - border: 1px var(--semanticFormsSubBorderColor) solid; +@supports (scrollbar-color: auto) { + .semanticForms textarea { + scrollbar-color: var(--semanticFormsScrollbarColor) transparent; + } + .semanticForms textarea::-webkit-resizer { + border: none; + background-image: var(--semanticFormsCustomResizer); + background-size: 14px; + background-repeat: no-repeat; + background-position: 100%; + margin: 0 2px 2px 0; + } + .semanticForms select[multiple] { + scrollbar-color: var(--semanticFormsScrollbarColor) transparent; + } +} + +.semanticForms input[type=checkbox] + label:first-of-type, +.semanticForms input[type=radio] + label:first-of-type { + padding-top: 2px; + font-size: var(--semanticFormsInputFontSize); + cursor: pointer; display: flex; - flex-direction: column; + align-items: center; gap: 5px; - padding: 10px 10px 20px 10px; - margin-bottom: 15px; } -form.semanticForms fieldset fieldset, -form.semanticForms.light fieldset fieldset, -table.semanticForms fieldset fieldset, -table.semanticForms.light fieldset fieldset { - background-color: var(--semanticFormsNestedFieldsetBgColor); - border: var(--semanticFormsNestedFieldsetBorder); +.semanticForms input[type=checkbox] + label:first-of-type span.required, +.semanticForms input[type=radio] + label:first-of-type span.required { + cursor: help; + pointer-events: auto; + color: red; } -form.semanticForms fieldset fieldset input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -form.semanticForms fieldset fieldset select, -form.semanticForms fieldset fieldset textarea, -form.semanticForms.light fieldset fieldset input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -form.semanticForms.light fieldset fieldset select, -form.semanticForms.light fieldset fieldset textarea, -table.semanticForms fieldset fieldset input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -table.semanticForms fieldset fieldset select, -table.semanticForms fieldset fieldset textarea, -table.semanticForms.light fieldset fieldset input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio]), -table.semanticForms.light fieldset fieldset select, -table.semanticForms.light fieldset fieldset textarea { - background-color: var(--semanticFormsNestedInputBgColor); +.semanticForms input[type=checkbox] + label:first-of-type span.help, +.semanticForms input[type=radio] + label:first-of-type span.help { + display: grid; + place-items: center; + cursor: help; + pointer-events: auto; } -form.semanticForms details, -form.semanticForms.light details, -table.semanticForms details, -table.semanticForms.light details { - box-sizing: border-box; +.semanticForms input[type=checkbox] + label:first-of-type span.help svg, +.semanticForms input[type=radio] + label:first-of-type span.help svg { + width: 80%; +} +.semanticForms .floatLabelForm div dt { position: relative; - background-color: var(--semanticFormsNestedFieldsetBgColor); - border: var(--semanticFormsNestedFieldsetBorder); - border-radius: var(--semanticFormsBorderRadius); +} +.semanticForms .floatLabelForm div dt label { display: flex; - flex-direction: column; + align-items: center; gap: 5px; - padding: 20px 10px 10px 10px; - margin-bottom: 15px; - min-height: calc(var(--semanticFormsFontSize) + 20px); + z-index: 2; + user-select: auto; + color: var(--semanticFormsTextColor); + font-size: var(--semanticFormsInputFontSize); + position: absolute; + transform-origin: left center; + transform: translateY(-100%) scale(0.7); + top: var(--semanticFormsInputTopMargin); + left: 10px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + width: 100%; } -form.semanticForms details::details-content, -form.semanticForms.light details::details-content, -table.semanticForms details::details-content, -table.semanticForms.light details::details-content { - visibility: hidden; - opacity: 0; - transition: opacity 250ms ease-in, visibility 0ms ease-in 250ms; +.semanticForms .floatLabelForm div dt label span.help { + display: grid; + place-items: center; + cursor: help; + pointer-events: auto; } -@supports (interpolate-size: allow-keywords) { - form.semanticForms details, - form.semanticForms.light details, - table.semanticForms details, - table.semanticForms.light details { - transition: opacity 250ms ease-in, visibility 0ms ease-in 250ms, height 250ms; - } - form.semanticForms details::details-content, - form.semanticForms.light details::details-content, - table.semanticForms details::details-content, - table.semanticForms.light details::details-content { - height: 0; - overflow: hidden; - transition: height 250ms, content-visibility 250ms; - transition-behavior: allow-discrete; - } -} -form.semanticForms details summary, -form.semanticForms.light details summary, -table.semanticForms details summary, -table.semanticForms.light details summary { - cursor: pointer; - margin: 0; - line-height: 1; - position: absolute; - top: 10px; - left: 22px; - transition: top 250ms; -} -form.semanticForms details summary::-webkit-details-marker, form.semanticForms details summary::marker, -form.semanticForms.light details summary::-webkit-details-marker, -form.semanticForms.light details summary::marker, -table.semanticForms details summary::-webkit-details-marker, -table.semanticForms details summary::marker, -table.semanticForms.light details summary::-webkit-details-marker, -table.semanticForms.light details summary::marker { - content: ""; -} -form.semanticForms details summary::before, -form.semanticForms.light details summary::before, -table.semanticForms details summary::before, -table.semanticForms.light details summary::before { - content: ""; - border-width: 0.4rem; - border-style: solid; - border-color: transparent transparent transparent var(--semanticFormsTextColor); - position: absolute; - top: 0; - left: -10px; - transform: rotate(0); - transform-origin: 0.2rem 50%; - transition: 250ms transform ease; -} -form.semanticForms details[open]::details-content, -form.semanticForms.light details[open]::details-content, -table.semanticForms details[open]::details-content, -table.semanticForms.light details[open]::details-content { - visibility: visible; - opacity: 1; - transition: opacity 250ms ease-in, visibility 0ms ease-in 0ms; -} -@supports (interpolate-size: allow-keywords) { - form.semanticForms details[open]::details-content, - form.semanticForms.light details[open]::details-content, - table.semanticForms details[open]::details-content, - table.semanticForms.light details[open]::details-content { - height: auto; - } -} -form.semanticForms details[open] summary::before, -form.semanticForms.light details[open] summary::before, -table.semanticForms details[open] summary::before, -table.semanticForms.light details[open] summary::before { - transform: rotate(90deg); -} -form.semanticForms details[open] > dl:first-of-type, -form.semanticForms.light details[open] > dl:first-of-type, -table.semanticForms details[open] > dl:first-of-type, -table.semanticForms.light details[open] > dl:first-of-type { - margin-top: 15px; -} -form.semanticForms details[open], form.semanticForms summary, -form.semanticForms.light details[open], -form.semanticForms.light summary, -table.semanticForms details[open], -table.semanticForms summary, -table.semanticForms.light details[open], -table.semanticForms.light summary { - margin-bottom: 10px; -} -@supports (scrollbar-color: auto) { - form.semanticForms textarea, - form.semanticForms.light textarea, - table.semanticForms textarea, - table.semanticForms.light textarea { - scrollbar-color: var(--semanticFormsScrollbarColor) transparent; - } - form.semanticForms textarea::-webkit-resizer, - form.semanticForms.light textarea::-webkit-resizer, - table.semanticForms textarea::-webkit-resizer, - table.semanticForms.light textarea::-webkit-resizer { - border: none; - background-image: var(--semanticFormsCustomResizer); - background-size: 14px; - background-repeat: no-repeat; - background-position: 100%; - margin: 0 2px 2px 0; - } - form.semanticForms select[multiple], - form.semanticForms.light select[multiple], - table.semanticForms select[multiple], - table.semanticForms.light select[multiple] { - scrollbar-color: var(--semanticFormsScrollbarColor) transparent; - } -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(var(--semanticFormsInputMinWidth), 1fr)); - gap: 10px; - margin-bottom: 10px; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd { - position: relative; - display: flex; - flex-direction: column; - gap: 10px; - max-width: 100%; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio { - display: grid; - grid-template-columns: 15px 1fr; - align-items: center; - padding-left: 11px; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox > :not(input[type=checkbox], input[type=radio], label), form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > :not(input[type=checkbox], input[type=radio], label), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox > :not(input[type=checkbox], input[type=radio], label), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > :not(input[type=checkbox], input[type=radio], label), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox > :not(input[type=checkbox], input[type=radio], label), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > :not(input[type=checkbox], input[type=radio], label), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox > :not(input[type=checkbox], input[type=radio], label), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > :not(input[type=checkbox], input[type=radio], label) { - grid-column: 1/-1; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox label:nth-of-type(2), form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio label:nth-of-type(2), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox label:nth-of-type(2), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio label:nth-of-type(2), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox label:nth-of-type(2), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio label:nth-of-type(2), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleCheckbox label:nth-of-type(2), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio label:nth-of-type(2) { - grid-column: 1/-1; - padding: 0 10px; - font-size: small; - color: var(--semanticFormsTextColor); -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > input, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > input, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > input, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.singleRadio > input { - margin: 0; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul { - display: flex; - flex-direction: column; - margin-top: var(--semanticFormsInputTopMargin); - padding-left: 10px; - gap: 5px; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul li, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul li, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul li, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul li, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul li, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul li, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes ul li, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios ul li { - display: flex; - align-items: center; - gap: 5px; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes > label, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios > label, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes > label, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios > label, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes > label, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios > label, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.checkboxes > label, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd.radios > label { - padding-left: 20px; - font-size: small; - color: var(--semanticFormsTextColor); -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) { - display: grid; - grid-template-columns: 2fr 1fr; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.clear, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.show, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.clear, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.show, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.clear, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.show, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.clear, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button.show { - right: 36%; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input:not([type=submit]), form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) select, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) textarea, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input:not([type=submit]), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) select, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) textarea, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input:not([type=submit]), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) select, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) textarea, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input:not([type=submit]), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) select, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) textarea { - grid-row: 1/2; - grid-column: 1/2; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button:not(.clear, .show), -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=submit]:not(.clear, .show), -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=button]:not(.clear, .show), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button:not(.clear, .show), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=submit]:not(.clear, .show), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=button]:not(.clear, .show), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button:not(.clear, .show), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=submit]:not(.clear, .show), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=button]:not(.clear, .show), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) button:not(.clear, .show), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=submit]:not(.clear, .show), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) input[type=button]:not(.clear, .show) { - grid-row: 1/2; - grid-column: 2/3; +.semanticForms .floatLabelForm div:has(dd input:required) dt label { width: 100%; - max-width: 100%; - padding: 10px; - height: var(--semanticFormsInputHeight); - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - display: inline-block; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:nth-of-type(2), -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:not(.floatLabelFormAnimatedLabel), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:nth-of-type(2), -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:not(.floatLabelFormAnimatedLabel), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:nth-of-type(2), -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:not(.floatLabelFormAnimatedLabel), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:nth-of-type(2), -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(button:not(.clear, .show), input[type=submit]:not(.clear, .show)) label:not(.floatLabelFormAnimatedLabel) { - grid-row: 2/3; - grid-column: 1/-1; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) label:first-of-type, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) label:first-of-type, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) label:first-of-type, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) label:first-of-type { - width: calc(100% - 95px); -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key { - display: block; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key kbd, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key kbd, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key kbd, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key) span.focus-key kbd { - font-family: sans-serif; -} -form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):has(input:focus, select:focus, textarea:focus) span.focus-key, form.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):not(:has(input:placeholder-shown, textarea:placeholder-shown)) span.focus-key, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):has(input:focus, select:focus, textarea:focus) span.focus-key, -form.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):not(:has(input:placeholder-shown, textarea:placeholder-shown)) span.focus-key, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):has(input:focus, select:focus, textarea:focus) span.focus-key, -table.semanticForms dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):not(:has(input:placeholder-shown, textarea:placeholder-shown)) span.focus-key, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):has(input:focus, select:focus, textarea:focus) span.focus-key, -table.semanticForms.light dl:has(dt > label, dd > input, dd > select, dd > textarea) dd:has(span.focus-key):not(:has(input:placeholder-shown, textarea:placeholder-shown)) span.focus-key { - display: none; -} -form.semanticForms p:has(input:not([type=checkbox], [type=radio]), textarea, label), -form.semanticForms.light p:has(input:not([type=checkbox], [type=radio]), textarea, label), -table.semanticForms p:has(input:not([type=checkbox], [type=radio]), textarea, label), -table.semanticForms.light p:has(input:not([type=checkbox], [type=radio]), textarea, label) { - display: flex; - flex-direction: column; - gap: 5px; -} -form.semanticForms p:has(input[type=checkbox], input[type=radio]), -form.semanticForms.light p:has(input[type=checkbox], input[type=radio]), -table.semanticForms p:has(input[type=checkbox], input[type=radio]), -table.semanticForms.light p:has(input[type=checkbox], input[type=radio]) { - display: flex; - flex-direction: row; - align-items: center; - gap: 5px; -} -form.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), -form.semanticForms ul:has(li > input, li > label, li > button, li > select, li > textarea), -form.semanticForms.light menu:has(li > input, li > label, li > button, li > select, li > textarea), -form.semanticForms.light ul:has(li > input, li > label, li > button, li > select, li > textarea), -table.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), -table.semanticForms ul:has(li > input, li > label, li > button, li > select, li > textarea), -table.semanticForms.light menu:has(li > input, li > label, li > button, li > select, li > textarea), -table.semanticForms.light ul:has(li > input, li > label, li > button, li > select, li > textarea) { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - gap: 10px; - list-style-type: none; -} -form.semanticForms input[type=checkbox] + label:first-of-type, -form.semanticForms input[type=radio] + label:first-of-type, -form.semanticForms.light input[type=checkbox] + label:first-of-type, -form.semanticForms.light input[type=radio] + label:first-of-type, -table.semanticForms input[type=checkbox] + label:first-of-type, -table.semanticForms input[type=radio] + label:first-of-type, -table.semanticForms.light input[type=checkbox] + label:first-of-type, -table.semanticForms.light input[type=radio] + label:first-of-type { - padding-top: 2px; - font-size: var(--semanticFormsInputFontSize); - cursor: pointer; - display: flex; - align-items: center; - gap: 5px; + padding-right: 10px; } -form.semanticForms input[type=checkbox] + label:first-of-type span.required, -form.semanticForms input[type=radio] + label:first-of-type span.required, -form.semanticForms.light input[type=checkbox] + label:first-of-type span.required, -form.semanticForms.light input[type=radio] + label:first-of-type span.required, -table.semanticForms input[type=checkbox] + label:first-of-type span.required, -table.semanticForms input[type=radio] + label:first-of-type span.required, -table.semanticForms.light input[type=checkbox] + label:first-of-type span.required, -table.semanticForms.light input[type=radio] + label:first-of-type span.required { +.semanticForms .floatLabelForm div:has(dd input:required) dt label > span { + margin-left: 5px; cursor: help; pointer-events: auto; color: red; } -form.semanticForms input[type=checkbox] + label:first-of-type span.help, -form.semanticForms input[type=radio] + label:first-of-type span.help, -form.semanticForms.light input[type=checkbox] + label:first-of-type span.help, -form.semanticForms.light input[type=radio] + label:first-of-type span.help, -table.semanticForms input[type=checkbox] + label:first-of-type span.help, -table.semanticForms input[type=radio] + label:first-of-type span.help, -table.semanticForms.light input[type=checkbox] + label:first-of-type span.help, -table.semanticForms.light input[type=radio] + label:first-of-type span.help { - display: grid; - place-items: center; - cursor: help; - pointer-events: auto; -} -form.semanticForms input[type=checkbox] + label:first-of-type span.help svg, -form.semanticForms input[type=radio] + label:first-of-type span.help svg, -form.semanticForms.light input[type=checkbox] + label:first-of-type span.help svg, -form.semanticForms.light input[type=radio] + label:first-of-type span.help svg, -table.semanticForms input[type=checkbox] + label:first-of-type span.help svg, -table.semanticForms input[type=radio] + label:first-of-type span.help svg, -table.semanticForms.light input[type=checkbox] + label:first-of-type span.help svg, -table.semanticForms.light input[type=radio] + label:first-of-type span.help svg { - width: 80%; -} -form.semanticForms .floatLabelForm, -form.semanticForms.light .floatLabelForm, -table.semanticForms .floatLabelForm, -table.semanticForms.light .floatLabelForm { - grid-template-columns: repeat(auto-fit, minmax(var(--semanticFormsInputMinWidth), 1fr)); -} -form.semanticForms .floatLabelForm div, -form.semanticForms.light .floatLabelForm div, -table.semanticForms .floatLabelForm div, -table.semanticForms.light .floatLabelForm div { - position: relative; - width: 100%; - min-width: var(--semanticFormsInputMinWidth); - max-width: 100%; - max-width: 365px; -} -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=button], [type=image]):focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, .semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=button], [type=image]):not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:not([type=checkbox], [type=radio], .no-float-label) ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown):not(.no-float-label):not([type=checkbox]):not([type=radio]) ~ label:first-of-type { color: var(--semanticFormsTextColor); transform: translateY(-150%) scale(0.7); width: 100%; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus.no-float-label ~ label:first-of-type, form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus.no-float-label ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus.no-float-label ~ label:first-of-type, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus.no-float-label ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus.no-float-label ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus.no-float-label ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus.no-float-label ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus.no-float-label ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus.no-float-label ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):focus.no-float-label ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=image]):not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus.no-float-label ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus.no-float-label ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=button], [type=image]):focus.no-float-label ~ label:first-of-type, .semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:not([type=submit], [type=reset], [type=button], [type=image]):not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:focus.no-float-label ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus.no-float-label ~ label:first-of-type, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:not(:placeholder-shown).no-float-label:not([type=checkbox]):not([type=radio]) ~ label:first-of-type { display: none; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select ~ label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select ~ label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select ~ label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select ~ label:first-of-type { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select ~ label:first-of-type { color: var(--semanticFormsTextColor); } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) button:not(.clear, .show), -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input[type=submit]:not(.clear, .show), -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) button:not(.clear, .show), -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input[type=submit]:not(.clear, .show), -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) button:not(.clear, .show), -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input[type=submit]:not(.clear, .show), -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) button:not(.clear, .show), -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input[type=submit]:not(.clear, .show) { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) button:not(.clear, .show), +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input[type=submit]:not(.clear, .show) { margin-top: var(--semanticFormsInputTopMargin); } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type { position: absolute; top: calc(var(--semanticFormsInputTopMargin) + 10px); left: 20px; @@ -1479,1363 +627,295 @@ table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRad color: var(--semanticFormsPlaceholderColor); touch-action: manipulation; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.required, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.required, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.required, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.required { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.required { cursor: help; pointer-events: auto; color: red; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help { display: grid; place-items: center; cursor: help; pointer-events: auto; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help svg, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help svg, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help svg, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help svg { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:first-of-type span.help svg { width: 80%; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:nth-of-type(2), -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:nth-of-type(2), -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:nth-of-type(2), -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:nth-of-type(2) { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(span.focus-key) label:first-of-type { + width: calc(100% - 95px); +} +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(span.focus-key) span.focus-key { + display: block; +} +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(span.focus-key) span.focus-key kbd { + font-family: sans-serif; +} +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(span.focus-key):has(input:focus, select:focus, textarea:focus) span.focus-key, .semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(span.focus-key):not(:has(input:placeholder-shown, textarea:placeholder-shown)) span.focus-key { + display: none; +} +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) label:nth-of-type(2) { margin-top: -5px; padding: 0 10px; font-size: small; color: var(--semanticFormsTextColor); } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) select { margin-top: var(--semanticFormsInputTopMargin); } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea { transition: opacity 250ms; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::placeholder { opacity: 0; transition: opacity 250ms; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-moz-placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-moz-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-moz-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-moz-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-moz-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-moz-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-moz-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-moz-placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-moz-placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-moz-placeholder { opacity: 0; transition: opacity 250ms; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-webkit-input-placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-webkit-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-webkit-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-webkit-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-webkit-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-webkit-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-webkit-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-webkit-input-placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input::-webkit-input-placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea::-webkit-input-placeholder { opacity: 0; transition: opacity 250ms; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:-ms-input-placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:-ms-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:-ms-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:-ms-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:-ms-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:-ms-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:-ms-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:-ms-input-placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:-ms-input-placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:-ms-input-placeholder { opacity: 0; transition: opacity 250ms; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::placeholder { opacity: 1; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-moz-placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-moz-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-moz-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-moz-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-moz-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-moz-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-moz-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-moz-placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-moz-placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-moz-placeholder { opacity: 1; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-webkit-input-placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-webkit-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-webkit-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-webkit-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-webkit-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-webkit-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-webkit-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-webkit-input-placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus::-webkit-input-placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus::-webkit-input-placeholder { opacity: 1; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus:-ms-input-placeholder, -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:-ms-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus:-ms-input-placeholder, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:-ms-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus:-ms-input-placeholder, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:-ms-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus:-ms-input-placeholder, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:-ms-input-placeholder { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) input:focus:-ms-input-placeholder, +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) textarea:focus:-ms-input-placeholder { opacity: 1; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key { color: var(--semanticFormsPlaceholderColor); position: absolute; top: calc(var(--semanticFormsInputTopMargin) + 11px); right: 20px; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key kbd, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key kbd, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key kbd, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key kbd { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios) span.focus-key kbd { line-height: 1; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=number]) .focus-key, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=number]) .focus-key, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=number]) .focus-key, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=number]) .focus-key { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=number]) .focus-key { right: 45px; } -form.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=search]) label:first-of-type, -form.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=search]) label:first-of-type, -table.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=search]) label:first-of-type, -table.semanticForms.light .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=search]) label:first-of-type { +.semanticForms .floatLabelForm div dd:not(.singleCheckbox, .singleRadio, .checkboxes, .radios):has(input[type=search]) label:first-of-type { left: 32px; } -form.semanticForms .floatLabelForm div dt, -form.semanticForms.light .floatLabelForm div dt, -table.semanticForms .floatLabelForm div dt, -table.semanticForms.light .floatLabelForm div dt { - position: relative; -} -form.semanticForms .floatLabelForm div dt label, -form.semanticForms.light .floatLabelForm div dt label, -table.semanticForms .floatLabelForm div dt label, -table.semanticForms.light .floatLabelForm div dt label { - display: flex; - align-items: center; - gap: 5px; - z-index: 2; - user-select: auto; - color: var(--semanticFormsTextColor); - font-size: var(--semanticFormsInputFontSize); - position: absolute; - transform-origin: left center; - transform: translateY(-100%) scale(0.7); - top: var(--semanticFormsInputTopMargin); - left: 10px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - min-width: 0; - width: 100%; -} -form.semanticForms .floatLabelForm div dt label span.help, -form.semanticForms.light .floatLabelForm div dt label span.help, -table.semanticForms .floatLabelForm div dt label span.help, -table.semanticForms.light .floatLabelForm div dt label span.help { - display: grid; - place-items: center; - cursor: help; - pointer-events: auto; -} -form.semanticForms .floatLabelForm div:has(dd input:required) dt label, -form.semanticForms.light .floatLabelForm div:has(dd input:required) dt label, -table.semanticForms .floatLabelForm div:has(dd input:required) dt label, -table.semanticForms.light .floatLabelForm div:has(dd input:required) dt label { - width: 100%; - padding-right: 10px; -} -form.semanticForms .floatLabelForm div:has(dd input:required) dt label > span, -form.semanticForms.light .floatLabelForm div:has(dd input:required) dt label > span, -table.semanticForms .floatLabelForm div:has(dd input:required) dt label > span, -table.semanticForms.light .floatLabelForm div:has(dd input:required) dt label > span { - margin-left: 5px; - cursor: help; - pointer-events: auto; - color: red; -} -form.semanticForms .floatLabelForm div:has([data-max-content]), -form.semanticForms.light .floatLabelForm div:has([data-max-content]), -table.semanticForms .floatLabelForm div:has([data-max-content]), -table.semanticForms.light .floatLabelForm div:has([data-max-content]) { +.semanticForms .floatLabelForm div:has([data-max-content]) { max-width: max-content; min-width: 150px; } -form.semanticForms .floatLabelForm div:has([data-max-content]) dd, -form.semanticForms.light .floatLabelForm div:has([data-max-content]) dd, -table.semanticForms .floatLabelForm div:has([data-max-content]) dd, -table.semanticForms.light .floatLabelForm div:has([data-max-content]) dd { +.semanticForms .floatLabelForm div:has([data-max-content]) dd { width: max-content; } -form.semanticForms .floatLabelForm div:has([data-max-content]) dd input, form.semanticForms .floatLabelForm div:has([data-max-content]) dd select, -form.semanticForms.light .floatLabelForm div:has([data-max-content]) dd input, -form.semanticForms.light .floatLabelForm div:has([data-max-content]) dd select, -table.semanticForms .floatLabelForm div:has([data-max-content]) dd input, -table.semanticForms .floatLabelForm div:has([data-max-content]) dd select, -table.semanticForms.light .floatLabelForm div:has([data-max-content]) dd input, -table.semanticForms.light .floatLabelForm div:has([data-max-content]) dd select { +.semanticForms .floatLabelForm div:has([data-max-content]) dd input, .semanticForms .floatLabelForm div:has([data-max-content]) dd select { field-sizing: content; min-width: 150px; max-width: max-content; } -form.semanticForms .floatLabelForm input::placeholder, form.semanticForms .floatLabelForm textarea::placeholder, -form.semanticForms.light .floatLabelForm input::placeholder, -form.semanticForms.light .floatLabelForm textarea::placeholder, -table.semanticForms .floatLabelForm input::placeholder, -table.semanticForms .floatLabelForm textarea::placeholder, -table.semanticForms.light .floatLabelForm input::placeholder, -table.semanticForms.light .floatLabelForm textarea::placeholder { +.semanticForms .floatLabelForm input::placeholder, .semanticForms .floatLabelForm textarea::placeholder { color: var(--semanticFormsPlaceholderColor); opacity: 1; } -form.semanticForms div[class^=colspan-], -form.semanticForms.light div[class^=colspan-], -table.semanticForms div[class^=colspan-], -table.semanticForms.light div[class^=colspan-] { - max-width: 100%; + +.semanticForms div[class^=colspan-] { + max-width: 100% !important; } -form.semanticForms div.colspan-full, -form.semanticForms.light div.colspan-full, -table.semanticForms div.colspan-full, -table.semanticForms.light div.colspan-full { +.semanticForms div.colspan-full { grid-column: 1/-1; } -form.semanticForms div.colspan-5, -form.semanticForms.light div.colspan-5, -table.semanticForms div.colspan-5, -table.semanticForms.light div.colspan-5 { +.semanticForms div.colspan-5 { grid-column: span 5; } -form.semanticForms div.colspan-4, -form.semanticForms.light div.colspan-4, -table.semanticForms div.colspan-4, -table.semanticForms.light div.colspan-4 { +.semanticForms div.colspan-4 { grid-column: span 4; } -form.semanticForms div.colspan-3, -form.semanticForms.light div.colspan-3, -table.semanticForms div.colspan-3, -table.semanticForms.light div.colspan-3 { +.semanticForms div.colspan-3 { grid-column: span 3; } -form.semanticForms div.colspan-2, -form.semanticForms.light div.colspan-2, -table.semanticForms div.colspan-2, -table.semanticForms.light div.colspan-2 { +.semanticForms div.colspan-2 { grid-column: span 2; } -form.semanticForms div.colspan-1, -form.semanticForms.light div.colspan-1, -table.semanticForms div.colspan-1, -table.semanticForms.light div.colspan-1 { +.semanticForms div.colspan-1 { grid-column: span 1; } -form.semanticForms fieldset[class^=colspan-] dl div, -form.semanticForms dl[class^=colspan-] div, -form.semanticForms.light fieldset[class^=colspan-] dl div, -form.semanticForms.light dl[class^=colspan-] div, -table.semanticForms fieldset[class^=colspan-] dl div, -table.semanticForms dl[class^=colspan-] div, -table.semanticForms.light fieldset[class^=colspan-] dl div, -table.semanticForms.light dl[class^=colspan-] div { - max-width: 100%; +.semanticForms fieldset[class^=colspan-] dl div, +.semanticForms dl[class^=colspan-] div { + max-width: 100% !important; } -form.semanticForms fieldset.colspan-full dl, -form.semanticForms dl.colspan-full, -form.semanticForms.light fieldset.colspan-full dl, -form.semanticForms.light dl.colspan-full, -table.semanticForms fieldset.colspan-full dl, -table.semanticForms dl.colspan-full, -table.semanticForms.light fieldset.colspan-full dl, -table.semanticForms.light dl.colspan-full { +.semanticForms fieldset.colspan-full dl, +.semanticForms dl.colspan-full { grid-template-columns: repeat(auto-fit, minmax(var(--semanticFormsInputMinWidth), 1fr)); } -form.semanticForms fieldset.colspan-5 dl, -form.semanticForms dl.colspan-5, -form.semanticForms.light fieldset.colspan-5 dl, -form.semanticForms.light dl.colspan-5, -table.semanticForms fieldset.colspan-5 dl, -table.semanticForms dl.colspan-5, -table.semanticForms.light fieldset.colspan-5 dl, -table.semanticForms.light dl.colspan-5 { +.semanticForms fieldset.colspan-5 dl, +.semanticForms dl.colspan-5 { grid-template-columns: repeat(5, minmax(var(--semanticFormsInputMinWidth), 1fr)); } -form.semanticForms fieldset.colspan-4 dl, -form.semanticForms dl.colspan-4, -form.semanticForms.light fieldset.colspan-4 dl, -form.semanticForms.light dl.colspan-4, -table.semanticForms fieldset.colspan-4 dl, -table.semanticForms dl.colspan-4, -table.semanticForms.light fieldset.colspan-4 dl, -table.semanticForms.light dl.colspan-4 { +.semanticForms fieldset.colspan-4 dl, +.semanticForms dl.colspan-4 { grid-template-columns: repeat(4, minmax(var(--semanticFormsInputMinWidth), 1fr)); } -form.semanticForms fieldset.colspan-3 dl, -form.semanticForms dl.colspan-3, -form.semanticForms.light fieldset.colspan-3 dl, -form.semanticForms.light dl.colspan-3, -table.semanticForms fieldset.colspan-3 dl, -table.semanticForms dl.colspan-3, -table.semanticForms.light fieldset.colspan-3 dl, -table.semanticForms.light dl.colspan-3 { +.semanticForms fieldset.colspan-3 dl, +.semanticForms dl.colspan-3 { grid-template-columns: repeat(3, minmax(var(--semanticFormsInputMinWidth), 1fr)); } -form.semanticForms fieldset.colspan-2 dl, -form.semanticForms dl.colspan-2, -form.semanticForms.light fieldset.colspan-2 dl, -form.semanticForms.light dl.colspan-2, -table.semanticForms fieldset.colspan-2 dl, -table.semanticForms dl.colspan-2, -table.semanticForms.light fieldset.colspan-2 dl, -table.semanticForms.light dl.colspan-2 { +.semanticForms fieldset.colspan-2 dl, +.semanticForms dl.colspan-2 { grid-template-columns: repeat(2, minmax(var(--semanticFormsInputMinWidth), 1fr)); } -form.semanticForms fieldset.colspan-1 dl, -form.semanticForms dl.colspan-1, -form.semanticForms.light fieldset.colspan-1 dl, -form.semanticForms.light dl.colspan-1, -table.semanticForms fieldset.colspan-1 dl, -table.semanticForms dl.colspan-1, -table.semanticForms.light fieldset.colspan-1 dl, -table.semanticForms.light dl.colspan-1 { +.semanticForms fieldset.colspan-1 dl, +.semanticForms dl.colspan-1 { grid-template-columns: repeat(1, minmax(var(--semanticFormsInputMinWidth), 1fr)); } -form.semanticForms fieldset.colspan-1 dl dt:nth-of-type(n + 1), -form.semanticForms fieldset.colspan-1 dl dd:nth-of-type(n + 1), -form.semanticForms dl.colspan-1 dt:nth-of-type(n + 1), -form.semanticForms dl.colspan-1 dd:nth-of-type(n + 1), -form.semanticForms.light fieldset.colspan-1 dl dt:nth-of-type(n + 1), -form.semanticForms.light fieldset.colspan-1 dl dd:nth-of-type(n + 1), -form.semanticForms.light dl.colspan-1 dt:nth-of-type(n + 1), -form.semanticForms.light dl.colspan-1 dd:nth-of-type(n + 1), -table.semanticForms fieldset.colspan-1 dl dt:nth-of-type(n + 1), -table.semanticForms fieldset.colspan-1 dl dd:nth-of-type(n + 1), -table.semanticForms dl.colspan-1 dt:nth-of-type(n + 1), -table.semanticForms dl.colspan-1 dd:nth-of-type(n + 1), -table.semanticForms.light fieldset.colspan-1 dl dt:nth-of-type(n + 1), -table.semanticForms.light fieldset.colspan-1 dl dd:nth-of-type(n + 1), -table.semanticForms.light dl.colspan-1 dt:nth-of-type(n + 1), -table.semanticForms.light dl.colspan-1 dd:nth-of-type(n + 1) { +.semanticForms fieldset.colspan-1 dl dt:nth-of-type(n + 1), +.semanticForms fieldset.colspan-1 dl dd:nth-of-type(n + 1), +.semanticForms dl.colspan-1 dt:nth-of-type(n + 1), +.semanticForms dl.colspan-1 dd:nth-of-type(n + 1) { grid-column: 1; } -form.semanticForms fieldset.colspan-2 dl dt:nth-of-type(2n + 1), -form.semanticForms fieldset.colspan-2 dl dd:nth-of-type(2n + 1), -form.semanticForms dl.colspan-2 dt:nth-of-type(2n + 1), -form.semanticForms dl.colspan-2 dd:nth-of-type(2n + 1), -form.semanticForms.light fieldset.colspan-2 dl dt:nth-of-type(2n + 1), -form.semanticForms.light fieldset.colspan-2 dl dd:nth-of-type(2n + 1), -form.semanticForms.light dl.colspan-2 dt:nth-of-type(2n + 1), -form.semanticForms.light dl.colspan-2 dd:nth-of-type(2n + 1), -table.semanticForms fieldset.colspan-2 dl dt:nth-of-type(2n + 1), -table.semanticForms fieldset.colspan-2 dl dd:nth-of-type(2n + 1), -table.semanticForms dl.colspan-2 dt:nth-of-type(2n + 1), -table.semanticForms dl.colspan-2 dd:nth-of-type(2n + 1), -table.semanticForms.light fieldset.colspan-2 dl dt:nth-of-type(2n + 1), -table.semanticForms.light fieldset.colspan-2 dl dd:nth-of-type(2n + 1), -table.semanticForms.light dl.colspan-2 dt:nth-of-type(2n + 1), -table.semanticForms.light dl.colspan-2 dd:nth-of-type(2n + 1) { +.semanticForms fieldset.colspan-2 dl dt:nth-of-type(2n + 1), +.semanticForms fieldset.colspan-2 dl dd:nth-of-type(2n + 1), +.semanticForms dl.colspan-2 dt:nth-of-type(2n + 1), +.semanticForms dl.colspan-2 dd:nth-of-type(2n + 1) { grid-column: 1; } -form.semanticForms fieldset.colspan-2 dl dt:nth-of-type(2n + 2), -form.semanticForms fieldset.colspan-2 dl dd:nth-of-type(2n + 2), -form.semanticForms dl.colspan-2 dt:nth-of-type(2n + 2), -form.semanticForms dl.colspan-2 dd:nth-of-type(2n + 2), -form.semanticForms.light fieldset.colspan-2 dl dt:nth-of-type(2n + 2), -form.semanticForms.light fieldset.colspan-2 dl dd:nth-of-type(2n + 2), -form.semanticForms.light dl.colspan-2 dt:nth-of-type(2n + 2), -form.semanticForms.light dl.colspan-2 dd:nth-of-type(2n + 2), -table.semanticForms fieldset.colspan-2 dl dt:nth-of-type(2n + 2), -table.semanticForms fieldset.colspan-2 dl dd:nth-of-type(2n + 2), -table.semanticForms dl.colspan-2 dt:nth-of-type(2n + 2), -table.semanticForms dl.colspan-2 dd:nth-of-type(2n + 2), -table.semanticForms.light fieldset.colspan-2 dl dt:nth-of-type(2n + 2), -table.semanticForms.light fieldset.colspan-2 dl dd:nth-of-type(2n + 2), -table.semanticForms.light dl.colspan-2 dt:nth-of-type(2n + 2), -table.semanticForms.light dl.colspan-2 dd:nth-of-type(2n + 2) { +.semanticForms fieldset.colspan-2 dl dt:nth-of-type(2n + 2), +.semanticForms fieldset.colspan-2 dl dd:nth-of-type(2n + 2), +.semanticForms dl.colspan-2 dt:nth-of-type(2n + 2), +.semanticForms dl.colspan-2 dd:nth-of-type(2n + 2) { grid-column: 2; } -form.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 1), -form.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 1), -form.semanticForms dl.colspan-3 dt:nth-of-type(3n + 1), -form.semanticForms dl.colspan-3 dd:nth-of-type(3n + 1), -form.semanticForms.light fieldset.colspan-3 dl dt:nth-of-type(3n + 1), -form.semanticForms.light fieldset.colspan-3 dl dd:nth-of-type(3n + 1), -form.semanticForms.light dl.colspan-3 dt:nth-of-type(3n + 1), -form.semanticForms.light dl.colspan-3 dd:nth-of-type(3n + 1), -table.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 1), -table.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 1), -table.semanticForms dl.colspan-3 dt:nth-of-type(3n + 1), -table.semanticForms dl.colspan-3 dd:nth-of-type(3n + 1), -table.semanticForms.light fieldset.colspan-3 dl dt:nth-of-type(3n + 1), -table.semanticForms.light fieldset.colspan-3 dl dd:nth-of-type(3n + 1), -table.semanticForms.light dl.colspan-3 dt:nth-of-type(3n + 1), -table.semanticForms.light dl.colspan-3 dd:nth-of-type(3n + 1) { +.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 1), +.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 1), +.semanticForms dl.colspan-3 dt:nth-of-type(3n + 1), +.semanticForms dl.colspan-3 dd:nth-of-type(3n + 1) { grid-column: 1; } -form.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 2), -form.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 2), -form.semanticForms dl.colspan-3 dt:nth-of-type(3n + 2), -form.semanticForms dl.colspan-3 dd:nth-of-type(3n + 2), -form.semanticForms.light fieldset.colspan-3 dl dt:nth-of-type(3n + 2), -form.semanticForms.light fieldset.colspan-3 dl dd:nth-of-type(3n + 2), -form.semanticForms.light dl.colspan-3 dt:nth-of-type(3n + 2), -form.semanticForms.light dl.colspan-3 dd:nth-of-type(3n + 2), -table.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 2), -table.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 2), -table.semanticForms dl.colspan-3 dt:nth-of-type(3n + 2), -table.semanticForms dl.colspan-3 dd:nth-of-type(3n + 2), -table.semanticForms.light fieldset.colspan-3 dl dt:nth-of-type(3n + 2), -table.semanticForms.light fieldset.colspan-3 dl dd:nth-of-type(3n + 2), -table.semanticForms.light dl.colspan-3 dt:nth-of-type(3n + 2), -table.semanticForms.light dl.colspan-3 dd:nth-of-type(3n + 2) { +.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 2), +.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 2), +.semanticForms dl.colspan-3 dt:nth-of-type(3n + 2), +.semanticForms dl.colspan-3 dd:nth-of-type(3n + 2) { grid-column: 2; } -form.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 3), -form.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 3), -form.semanticForms dl.colspan-3 dt:nth-of-type(3n + 3), -form.semanticForms dl.colspan-3 dd:nth-of-type(3n + 3), -form.semanticForms.light fieldset.colspan-3 dl dt:nth-of-type(3n + 3), -form.semanticForms.light fieldset.colspan-3 dl dd:nth-of-type(3n + 3), -form.semanticForms.light dl.colspan-3 dt:nth-of-type(3n + 3), -form.semanticForms.light dl.colspan-3 dd:nth-of-type(3n + 3), -table.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 3), -table.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 3), -table.semanticForms dl.colspan-3 dt:nth-of-type(3n + 3), -table.semanticForms dl.colspan-3 dd:nth-of-type(3n + 3), -table.semanticForms.light fieldset.colspan-3 dl dt:nth-of-type(3n + 3), -table.semanticForms.light fieldset.colspan-3 dl dd:nth-of-type(3n + 3), -table.semanticForms.light dl.colspan-3 dt:nth-of-type(3n + 3), -table.semanticForms.light dl.colspan-3 dd:nth-of-type(3n + 3) { +.semanticForms fieldset.colspan-3 dl dt:nth-of-type(3n + 3), +.semanticForms fieldset.colspan-3 dl dd:nth-of-type(3n + 3), +.semanticForms dl.colspan-3 dt:nth-of-type(3n + 3), +.semanticForms dl.colspan-3 dd:nth-of-type(3n + 3) { grid-column: 3; } -form.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 1), -form.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 1), -form.semanticForms dl.colspan-4 dt:nth-of-type(4n + 1), -form.semanticForms dl.colspan-4 dd:nth-of-type(4n + 1), -form.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 1), -form.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 1), -form.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 1), -form.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 1), -table.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 1), -table.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 1), -table.semanticForms dl.colspan-4 dt:nth-of-type(4n + 1), -table.semanticForms dl.colspan-4 dd:nth-of-type(4n + 1), -table.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 1), -table.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 1), -table.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 1), -table.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 1) { +.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 1), +.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 1), +.semanticForms dl.colspan-4 dt:nth-of-type(4n + 1), +.semanticForms dl.colspan-4 dd:nth-of-type(4n + 1) { grid-column: 1; } -form.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 2), -form.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 2), -form.semanticForms dl.colspan-4 dt:nth-of-type(4n + 2), -form.semanticForms dl.colspan-4 dd:nth-of-type(4n + 2), -form.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 2), -form.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 2), -form.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 2), -form.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 2), -table.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 2), -table.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 2), -table.semanticForms dl.colspan-4 dt:nth-of-type(4n + 2), -table.semanticForms dl.colspan-4 dd:nth-of-type(4n + 2), -table.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 2), -table.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 2), -table.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 2), -table.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 2) { +.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 2), +.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 2), +.semanticForms dl.colspan-4 dt:nth-of-type(4n + 2), +.semanticForms dl.colspan-4 dd:nth-of-type(4n + 2) { grid-column: 2; } -form.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 3), -form.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 3), -form.semanticForms dl.colspan-4 dt:nth-of-type(4n + 3), -form.semanticForms dl.colspan-4 dd:nth-of-type(4n + 3), -form.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 3), -form.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 3), -form.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 3), -form.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 3), -table.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 3), -table.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 3), -table.semanticForms dl.colspan-4 dt:nth-of-type(4n + 3), -table.semanticForms dl.colspan-4 dd:nth-of-type(4n + 3), -table.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 3), -table.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 3), -table.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 3), -table.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 3) { +.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 3), +.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 3), +.semanticForms dl.colspan-4 dt:nth-of-type(4n + 3), +.semanticForms dl.colspan-4 dd:nth-of-type(4n + 3) { grid-column: 3; } -form.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 4), -form.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 4), -form.semanticForms dl.colspan-4 dt:nth-of-type(4n + 4), -form.semanticForms dl.colspan-4 dd:nth-of-type(4n + 4), -form.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 4), -form.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 4), -form.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 4), -form.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 4), -table.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 4), -table.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 4), -table.semanticForms dl.colspan-4 dt:nth-of-type(4n + 4), -table.semanticForms dl.colspan-4 dd:nth-of-type(4n + 4), -table.semanticForms.light fieldset.colspan-4 dl dt:nth-of-type(4n + 4), -table.semanticForms.light fieldset.colspan-4 dl dd:nth-of-type(4n + 4), -table.semanticForms.light dl.colspan-4 dt:nth-of-type(4n + 4), -table.semanticForms.light dl.colspan-4 dd:nth-of-type(4n + 4) { +.semanticForms fieldset.colspan-4 dl dt:nth-of-type(4n + 4), +.semanticForms fieldset.colspan-4 dl dd:nth-of-type(4n + 4), +.semanticForms dl.colspan-4 dt:nth-of-type(4n + 4), +.semanticForms dl.colspan-4 dd:nth-of-type(4n + 4) { grid-column: 4; } -form.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 1), -form.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 1), -form.semanticForms dl.colspan-5 dt:nth-of-type(5n + 1), -form.semanticForms dl.colspan-5 dd:nth-of-type(5n + 1), -form.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 1), -form.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 1), -form.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 1), -form.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 1), -table.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 1), -table.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 1), -table.semanticForms dl.colspan-5 dt:nth-of-type(5n + 1), -table.semanticForms dl.colspan-5 dd:nth-of-type(5n + 1), -table.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 1), -table.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 1), -table.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 1), -table.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 1) { +.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 1), +.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 1), +.semanticForms dl.colspan-5 dt:nth-of-type(5n + 1), +.semanticForms dl.colspan-5 dd:nth-of-type(5n + 1) { grid-column: 1; } -form.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 2), -form.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 2), -form.semanticForms dl.colspan-5 dt:nth-of-type(5n + 2), -form.semanticForms dl.colspan-5 dd:nth-of-type(5n + 2), -form.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 2), -form.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 2), -form.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 2), -form.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 2), -table.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 2), -table.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 2), -table.semanticForms dl.colspan-5 dt:nth-of-type(5n + 2), -table.semanticForms dl.colspan-5 dd:nth-of-type(5n + 2), -table.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 2), -table.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 2), -table.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 2), -table.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 2) { +.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 2), +.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 2), +.semanticForms dl.colspan-5 dt:nth-of-type(5n + 2), +.semanticForms dl.colspan-5 dd:nth-of-type(5n + 2) { grid-column: 2; } -form.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 3), -form.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 3), -form.semanticForms dl.colspan-5 dt:nth-of-type(5n + 3), -form.semanticForms dl.colspan-5 dd:nth-of-type(5n + 3), -form.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 3), -form.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 3), -form.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 3), -form.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 3), -table.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 3), -table.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 3), -table.semanticForms dl.colspan-5 dt:nth-of-type(5n + 3), -table.semanticForms dl.colspan-5 dd:nth-of-type(5n + 3), -table.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 3), -table.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 3), -table.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 3), -table.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 3) { +.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 3), +.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 3), +.semanticForms dl.colspan-5 dt:nth-of-type(5n + 3), +.semanticForms dl.colspan-5 dd:nth-of-type(5n + 3) { grid-column: 3; } -form.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 4), -form.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 4), -form.semanticForms dl.colspan-5 dt:nth-of-type(5n + 4), -form.semanticForms dl.colspan-5 dd:nth-of-type(5n + 4), -form.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 4), -form.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 4), -form.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 4), -form.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 4), -table.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 4), -table.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 4), -table.semanticForms dl.colspan-5 dt:nth-of-type(5n + 4), -table.semanticForms dl.colspan-5 dd:nth-of-type(5n + 4), -table.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 4), -table.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 4), -table.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 4), -table.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 4) { +.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 4), +.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 4), +.semanticForms dl.colspan-5 dt:nth-of-type(5n + 4), +.semanticForms dl.colspan-5 dd:nth-of-type(5n + 4) { grid-column: 4; } -form.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 5), -form.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 5), -form.semanticForms dl.colspan-5 dt:nth-of-type(5n + 5), -form.semanticForms dl.colspan-5 dd:nth-of-type(5n + 5), -form.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 5), -form.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 5), -form.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 5), -form.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 5), -table.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 5), -table.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 5), -table.semanticForms dl.colspan-5 dt:nth-of-type(5n + 5), -table.semanticForms dl.colspan-5 dd:nth-of-type(5n + 5), -table.semanticForms.light fieldset.colspan-5 dl dt:nth-of-type(5n + 5), -table.semanticForms.light fieldset.colspan-5 dl dd:nth-of-type(5n + 5), -table.semanticForms.light dl.colspan-5 dt:nth-of-type(5n + 5), -table.semanticForms.light dl.colspan-5 dd:nth-of-type(5n + 5) { +.semanticForms fieldset.colspan-5 dl dt:nth-of-type(5n + 5), +.semanticForms fieldset.colspan-5 dl dd:nth-of-type(5n + 5), +.semanticForms dl.colspan-5 dt:nth-of-type(5n + 5), +.semanticForms dl.colspan-5 dd:nth-of-type(5n + 5) { grid-column: 5; } -form.semanticForms.lowFlow, form.semanticForms:not(.semanticFormsActive), -form.semanticForms.light.lowFlow, -form.semanticForms.light:not(.semanticFormsActive), -table.semanticForms.lowFlow, -table.semanticForms:not(.semanticFormsActive), -table.semanticForms.light.lowFlow, -table.semanticForms.light:not(.semanticFormsActive) { - gap: 10px; -} -form.semanticForms.lowFlow dl, form.semanticForms:not(.semanticFormsActive) dl, -form.semanticForms.light.lowFlow dl, -form.semanticForms.light:not(.semanticFormsActive) dl, -table.semanticForms.lowFlow dl, -table.semanticForms:not(.semanticFormsActive) dl, -table.semanticForms.light.lowFlow dl, -table.semanticForms.light:not(.semanticFormsActive) dl { - grid-auto-flow: dense; - gap: 0 10px; - margin-bottom: 0px; + +form.semanticForms, +fieldset { + container: semanticForm/inline-size; } -form.semanticForms.lowFlow > dt:nth-of-type(2n + 1), form.semanticForms.lowFlow > dd:nth-of-type(2n + 1), form.semanticForms:not(.semanticFormsActive) > dt:nth-of-type(2n + 1), form.semanticForms:not(.semanticFormsActive) > dd:nth-of-type(2n + 1), -form.semanticForms.light.lowFlow > dt:nth-of-type(2n + 1), -form.semanticForms.light.lowFlow > dd:nth-of-type(2n + 1), -form.semanticForms.light:not(.semanticFormsActive) > dt:nth-of-type(2n + 1), -form.semanticForms.light:not(.semanticFormsActive) > dd:nth-of-type(2n + 1), -table.semanticForms.lowFlow > dt:nth-of-type(2n + 1), -table.semanticForms.lowFlow > dd:nth-of-type(2n + 1), -table.semanticForms:not(.semanticFormsActive) > dt:nth-of-type(2n + 1), -table.semanticForms:not(.semanticFormsActive) > dd:nth-of-type(2n + 1), -table.semanticForms.light.lowFlow > dt:nth-of-type(2n + 1), -table.semanticForms.light.lowFlow > dd:nth-of-type(2n + 1), -table.semanticForms.light:not(.semanticFormsActive) > dt:nth-of-type(2n + 1), -table.semanticForms.light:not(.semanticFormsActive) > dd:nth-of-type(2n + 1) { - grid-column: 1; +@container semanticForm (width >= 1810px) { + form.semanticForms fieldset dl, form.semanticForms dl, + fieldset fieldset dl, + fieldset dl { + grid-template-columns: repeat(7, minmax(var(--semanticFormsInputMinWidth), 1fr)); + } } -form.semanticForms.lowFlow > dt:nth-of-type(2n + 2), form.semanticForms.lowFlow > dd:nth-of-type(2n + 2), form.semanticForms:not(.semanticFormsActive) > dt:nth-of-type(2n + 2), form.semanticForms:not(.semanticFormsActive) > dd:nth-of-type(2n + 2), -form.semanticForms.light.lowFlow > dt:nth-of-type(2n + 2), -form.semanticForms.light.lowFlow > dd:nth-of-type(2n + 2), -form.semanticForms.light:not(.semanticFormsActive) > dt:nth-of-type(2n + 2), -form.semanticForms.light:not(.semanticFormsActive) > dd:nth-of-type(2n + 2), -table.semanticForms.lowFlow > dt:nth-of-type(2n + 2), -table.semanticForms.lowFlow > dd:nth-of-type(2n + 2), -table.semanticForms:not(.semanticFormsActive) > dt:nth-of-type(2n + 2), -table.semanticForms:not(.semanticFormsActive) > dd:nth-of-type(2n + 2), -table.semanticForms.light.lowFlow > dt:nth-of-type(2n + 2), -table.semanticForms.light.lowFlow > dd:nth-of-type(2n + 2), -table.semanticForms.light:not(.semanticFormsActive) > dt:nth-of-type(2n + 2), -table.semanticForms.light:not(.semanticFormsActive) > dd:nth-of-type(2n + 2) { - grid-column: 2; +@container semanticForm (width >= 1550px) and (width < 1810px) { + form.semanticForms fieldset dl, form.semanticForms dl, + fieldset fieldset dl, + fieldset dl { + grid-template-columns: repeat(6, minmax(var(--semanticFormsInputMinWidth), 1fr)); + } } -form.semanticForms.lowFlow dt, form.semanticForms:not(.semanticFormsActive) dt, -form.semanticForms.light.lowFlow dt, -form.semanticForms.light:not(.semanticFormsActive) dt, -table.semanticForms.lowFlow dt, -table.semanticForms:not(.semanticFormsActive) dt, -table.semanticForms.light.lowFlow dt, -table.semanticForms.light:not(.semanticFormsActive) dt { - min-width: var(--semanticFormsInputMinWidth); /* this matches the max-width of js-enabled inputs */ +@container semanticForm (width >= 1290px) and (width < 1550px) { + form.semanticForms fieldset dl, form.semanticForms dl, + fieldset fieldset dl, + fieldset dl { + grid-template-columns: repeat(5, minmax(var(--semanticFormsInputMinWidth), 1fr)); + } } -form.semanticForms.lowFlow dt label, form.semanticForms:not(.semanticFormsActive) dt label, -form.semanticForms.light.lowFlow dt label, -form.semanticForms.light:not(.semanticFormsActive) dt label, -table.semanticForms.lowFlow dt label, -table.semanticForms:not(.semanticFormsActive) dt label, -table.semanticForms.light.lowFlow dt label, -table.semanticForms.light:not(.semanticFormsActive) dt label { - position: absolute; - display: block; - height: 11px; - transform: scale(0.7); - transform-origin: left center; - padding-left: 22px; - margin-top: -1px; -} -form.semanticForms.lowFlow dt:has(+ dd input:required) label::after, form.semanticForms:not(.semanticFormsActive) dt:has(+ dd input:required) label::after, -form.semanticForms.light.lowFlow dt:has(+ dd input:required) label::after, -form.semanticForms.light:not(.semanticFormsActive) dt:has(+ dd input:required) label::after, -table.semanticForms.lowFlow dt:has(+ dd input:required) label::after, -table.semanticForms:not(.semanticFormsActive) dt:has(+ dd input:required) label::after, -table.semanticForms.light.lowFlow dt:has(+ dd input:required) label::after, -table.semanticForms.light:not(.semanticFormsActive) dt:has(+ dd input:required) label::after { - content: " *"; - color: red; -} -form.semanticForms.lowFlow dt:has(+ dd.checkboxes) label, form.semanticForms.lowFlow dt:has(+ dd.radios) label, form.semanticForms:not(.semanticFormsActive) dt:has(+ dd.checkboxes) label, form.semanticForms:not(.semanticFormsActive) dt:has(+ dd.radios) label, -form.semanticForms.light.lowFlow dt:has(+ dd.checkboxes) label, -form.semanticForms.light.lowFlow dt:has(+ dd.radios) label, -form.semanticForms.light:not(.semanticFormsActive) dt:has(+ dd.checkboxes) label, -form.semanticForms.light:not(.semanticFormsActive) dt:has(+ dd.radios) label, -table.semanticForms.lowFlow dt:has(+ dd.checkboxes) label, -table.semanticForms.lowFlow dt:has(+ dd.radios) label, -table.semanticForms:not(.semanticFormsActive) dt:has(+ dd.checkboxes) label, -table.semanticForms:not(.semanticFormsActive) dt:has(+ dd.radios) label, -table.semanticForms.light.lowFlow dt:has(+ dd.checkboxes) label, -table.semanticForms.light.lowFlow dt:has(+ dd.radios) label, -table.semanticForms.light:not(.semanticFormsActive) dt:has(+ dd.checkboxes) label, -table.semanticForms.light:not(.semanticFormsActive) dt:has(+ dd.radios) label { - padding-left: 15px; -} -form.semanticForms.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, form.semanticForms:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, -form.semanticForms.light.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, -form.semanticForms.light:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, -table.semanticForms.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, -table.semanticForms:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, -table.semanticForms.light.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label, -table.semanticForms.light:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=checkbox]) label { - transform: scale(1); - margin-top: 0; - margin-left: 8px; -} -form.semanticForms.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, form.semanticForms:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, -form.semanticForms.light.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, -form.semanticForms.light:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, -table.semanticForms.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, -table.semanticForms:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, -table.semanticForms.light.lowFlow dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label, -table.semanticForms.light:not(.semanticFormsActive) dt:not(:has(+ dd ul)):has(+ dd input[type=radio]) label { - transform: scale(1); - margin-top: 0; - margin-left: 8px; -} -form.semanticForms.lowFlow dd, form.semanticForms:not(.semanticFormsActive) dd, -form.semanticForms.light.lowFlow dd, -form.semanticForms.light:not(.semanticFormsActive) dd, -table.semanticForms.lowFlow dd, -table.semanticForms:not(.semanticFormsActive) dd, -table.semanticForms.light.lowFlow dd, -table.semanticForms.light:not(.semanticFormsActive) dd { - margin-top: var(--semanticFormsInputTopMargin); - margin-bottom: 10px; - min-width: var(--semanticFormsInputMinWidth); /* this matches the max-width of js-enabled inputs */ -} -form.semanticForms.lowFlow dd.checkboxes, form.semanticForms.lowFlow dd.radios, form.semanticForms:not(.semanticFormsActive) dd.checkboxes, form.semanticForms:not(.semanticFormsActive) dd.radios, -form.semanticForms.light.lowFlow dd.checkboxes, -form.semanticForms.light.lowFlow dd.radios, -form.semanticForms.light:not(.semanticFormsActive) dd.checkboxes, -form.semanticForms.light:not(.semanticFormsActive) dd.radios, -table.semanticForms.lowFlow dd.checkboxes, -table.semanticForms.lowFlow dd.radios, -table.semanticForms:not(.semanticFormsActive) dd.checkboxes, -table.semanticForms:not(.semanticFormsActive) dd.radios, -table.semanticForms.light.lowFlow dd.checkboxes, -table.semanticForms.light.lowFlow dd.radios, -table.semanticForms.light:not(.semanticFormsActive) dd.checkboxes, -table.semanticForms.light:not(.semanticFormsActive) dd.radios { - margin-top: 0; -} -form.semanticForms.lowFlow dd.checkboxes ul input[type=radio], form.semanticForms.lowFlow dd.radios ul input[type=radio], form.semanticForms:not(.semanticFormsActive) dd.checkboxes ul input[type=radio], form.semanticForms:not(.semanticFormsActive) dd.radios ul input[type=radio], -form.semanticForms.light.lowFlow dd.checkboxes ul input[type=radio], -form.semanticForms.light.lowFlow dd.radios ul input[type=radio], -form.semanticForms.light:not(.semanticFormsActive) dd.checkboxes ul input[type=radio], -form.semanticForms.light:not(.semanticFormsActive) dd.radios ul input[type=radio], -table.semanticForms.lowFlow dd.checkboxes ul input[type=radio], -table.semanticForms.lowFlow dd.radios ul input[type=radio], -table.semanticForms:not(.semanticFormsActive) dd.checkboxes ul input[type=radio], -table.semanticForms:not(.semanticFormsActive) dd.radios ul input[type=radio], -table.semanticForms.light.lowFlow dd.checkboxes ul input[type=radio], -table.semanticForms.light.lowFlow dd.radios ul input[type=radio], -table.semanticForms.light:not(.semanticFormsActive) dd.checkboxes ul input[type=radio], -table.semanticForms.light:not(.semanticFormsActive) dd.radios ul input[type=radio] { - margin-top: 3px; -} -form.semanticForms.lowFlow dd.checkboxes ul label, form.semanticForms.lowFlow dd.radios ul label, form.semanticForms:not(.semanticFormsActive) dd.checkboxes ul label, form.semanticForms:not(.semanticFormsActive) dd.radios ul label, -form.semanticForms.light.lowFlow dd.checkboxes ul label, -form.semanticForms.light.lowFlow dd.radios ul label, -form.semanticForms.light:not(.semanticFormsActive) dd.checkboxes ul label, -form.semanticForms.light:not(.semanticFormsActive) dd.radios ul label, -table.semanticForms.lowFlow dd.checkboxes ul label, -table.semanticForms.lowFlow dd.radios ul label, -table.semanticForms:not(.semanticFormsActive) dd.checkboxes ul label, -table.semanticForms:not(.semanticFormsActive) dd.radios ul label, -table.semanticForms.light.lowFlow dd.checkboxes ul label, -table.semanticForms.light.lowFlow dd.radios ul label, -table.semanticForms.light:not(.semanticFormsActive) dd.checkboxes ul label, -table.semanticForms.light:not(.semanticFormsActive) dd.radios ul label { - padding-top: 7px; - padding-left: 0; - font-size: var(--semanticFormsFontSize); -} -form.semanticForms.lowFlow dd.checkboxes ul + label, form.semanticForms.lowFlow dd.radios ul + label, form.semanticForms:not(.semanticFormsActive) dd.checkboxes ul + label, form.semanticForms:not(.semanticFormsActive) dd.radios ul + label, -form.semanticForms.light.lowFlow dd.checkboxes ul + label, -form.semanticForms.light.lowFlow dd.radios ul + label, -form.semanticForms.light:not(.semanticFormsActive) dd.checkboxes ul + label, -form.semanticForms.light:not(.semanticFormsActive) dd.radios ul + label, -table.semanticForms.lowFlow dd.checkboxes ul + label, -table.semanticForms.lowFlow dd.radios ul + label, -table.semanticForms:not(.semanticFormsActive) dd.checkboxes ul + label, -table.semanticForms:not(.semanticFormsActive) dd.radios ul + label, -table.semanticForms.light.lowFlow dd.checkboxes ul + label, -table.semanticForms.light.lowFlow dd.radios ul + label, -table.semanticForms.light:not(.semanticFormsActive) dd.checkboxes ul + label, -table.semanticForms.light:not(.semanticFormsActive) dd.radios ul + label { - margin-top: 0; - font-size: small; -} -form.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), form.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), -form.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), -form.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), -table.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), -table.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), -table.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]), -table.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) { - margin-top: 0; - padding-left: 10px; -} -form.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -form.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], form.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -form.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], -form.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -form.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], -form.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -form.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], -table.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -table.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], -table.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -table.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], -table.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -table.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio], -table.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=checkbox], -table.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] { - margin-left: 1px; - margin-top: 1px; - margin-right: auto; -} -form.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, form.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, -form.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, -form.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, -table.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, -table.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, -table.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label, -table.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) label { - font-size: small; - margin-top: -1px; - padding-left: 11px; -} -form.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, form.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, -form.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, -form.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, -table.semanticForms.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, -table.semanticForms:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, -table.semanticForms.light.lowFlow dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label, -table.semanticForms.light:not(.semanticFormsActive) dd:not(:has(ul)):has(input[type=checkbox], input[type=radio]) input[type=radio] + label { - margin-top: -4px; -} -form.semanticForms.lowFlow dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -form.semanticForms.lowFlow dd select, -form.semanticForms.lowFlow dd textarea, form.semanticForms:not(.semanticFormsActive) dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -form.semanticForms:not(.semanticFormsActive) dd select, -form.semanticForms:not(.semanticFormsActive) dd textarea, -form.semanticForms.light.lowFlow dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -form.semanticForms.light.lowFlow dd select, -form.semanticForms.light.lowFlow dd textarea, -form.semanticForms.light:not(.semanticFormsActive) dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -form.semanticForms.light:not(.semanticFormsActive) dd select, -form.semanticForms.light:not(.semanticFormsActive) dd textarea, -table.semanticForms.lowFlow dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -table.semanticForms.lowFlow dd select, -table.semanticForms.lowFlow dd textarea, -table.semanticForms:not(.semanticFormsActive) dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -table.semanticForms:not(.semanticFormsActive) dd select, -table.semanticForms:not(.semanticFormsActive) dd textarea, -table.semanticForms.light.lowFlow dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -table.semanticForms.light.lowFlow dd select, -table.semanticForms.light.lowFlow dd textarea, -table.semanticForms.light:not(.semanticFormsActive) dd input:not([type=submit], [type=reset], [type=image], [type=checkbox], [type=radio], [type=range]), -table.semanticForms.light:not(.semanticFormsActive) dd select, -table.semanticForms.light:not(.semanticFormsActive) dd textarea { - padding-right: 6px; -} -form.semanticForms.lowFlow dd label, form.semanticForms:not(.semanticFormsActive) dd label, -form.semanticForms.light.lowFlow dd label, -form.semanticForms.light:not(.semanticFormsActive) dd label, -table.semanticForms.lowFlow dd label, -table.semanticForms:not(.semanticFormsActive) dd label, -table.semanticForms.light.lowFlow dd label, -table.semanticForms.light:not(.semanticFormsActive) dd label { - padding-left: 10px; - margin-top: -5px; - font-size: small; - color: var(--semanticFormsPlaceholderColor); -} -form.semanticForms.lowFlow dd button:not(.clear, .show), -form.semanticForms.lowFlow dd input[type=submit]:not(.clear, .show), -form.semanticForms.lowFlow dd input[type=button]:not(.clear, .show), form.semanticForms:not(.semanticFormsActive) dd button:not(.clear, .show), -form.semanticForms:not(.semanticFormsActive) dd input[type=submit]:not(.clear, .show), -form.semanticForms:not(.semanticFormsActive) dd input[type=button]:not(.clear, .show), -form.semanticForms.light.lowFlow dd button:not(.clear, .show), -form.semanticForms.light.lowFlow dd input[type=submit]:not(.clear, .show), -form.semanticForms.light.lowFlow dd input[type=button]:not(.clear, .show), -form.semanticForms.light:not(.semanticFormsActive) dd button:not(.clear, .show), -form.semanticForms.light:not(.semanticFormsActive) dd input[type=submit]:not(.clear, .show), -form.semanticForms.light:not(.semanticFormsActive) dd input[type=button]:not(.clear, .show), -table.semanticForms.lowFlow dd button:not(.clear, .show), -table.semanticForms.lowFlow dd input[type=submit]:not(.clear, .show), -table.semanticForms.lowFlow dd input[type=button]:not(.clear, .show), -table.semanticForms:not(.semanticFormsActive) dd button:not(.clear, .show), -table.semanticForms:not(.semanticFormsActive) dd input[type=submit]:not(.clear, .show), -table.semanticForms:not(.semanticFormsActive) dd input[type=button]:not(.clear, .show), -table.semanticForms.light.lowFlow dd button:not(.clear, .show), -table.semanticForms.light.lowFlow dd input[type=submit]:not(.clear, .show), -table.semanticForms.light.lowFlow dd input[type=button]:not(.clear, .show), -table.semanticForms.light:not(.semanticFormsActive) dd button:not(.clear, .show), -table.semanticForms.light:not(.semanticFormsActive) dd input[type=submit]:not(.clear, .show), -table.semanticForms.light:not(.semanticFormsActive) dd input[type=button]:not(.clear, .show) { - margin-top: 0; -} -form.semanticForms .checkboxes ul, -form.semanticForms .radios ul, -form.semanticForms.light .checkboxes ul, -form.semanticForms.light .radios ul, -table.semanticForms .checkboxes ul, -table.semanticForms .radios ul, -table.semanticForms.light .checkboxes ul, -table.semanticForms.light .radios ul { - margin-top: var(--semanticFormsInputTopMargin); -} - -.semanticForms table, -table.semanticForms { - table-layout: fixed; - width: 100%; - border-spacing: 0; - border: var(--semanticFormsBorder); - border-radius: 10px; - margin-bottom: 15px; - overflow: hidden; -} -.semanticForms table tr.title th, -table.semanticForms tr.title th { - background-color: var(--semanticFormsTableTitleColor); -} -.semanticForms table th, -table.semanticForms th { - background-color: var(--semanticFormsTableHeaderColor); - font-weight: bold; -} -.semanticForms table tr:nth-child(odd) td, -table.semanticForms tr:nth-child(odd) td { - background-color: var(--semanticFormsTableOddColor); -} -.semanticForms table tr:nth-child(even) td, -table.semanticForms tr:nth-child(even) td { - background-color: var(--semanticFormsTableEvenColor); -} -.semanticForms table td, .semanticForms table th, -table.semanticForms td, -table.semanticForms th { - border-right: var(--semanticFormsTableBorder); - border-bottom: var(--semanticFormsTableBorder); - padding: 7px 10px; -} -.semanticForms table th:last-of-type, .semanticForms table td:last-of-type, -table.semanticForms th:last-of-type, -table.semanticForms td:last-of-type { - border-right: none; -} -.semanticForms table tbody tr:last-of-type th, .semanticForms table tbody tr:last-of-type td, -table.semanticForms tbody tr:last-of-type th, -table.semanticForms tbody tr:last-of-type td { - border-bottom: none; -} -.semanticForms table menu:has(li > input, li > label, li > button, li > select, li > textarea, li > a), -table.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea, li > a) { - width: max-content; -} - -form.semanticForms, -fieldset { - container: semanticForm/inline-size; -} -@container semanticForm (width >= 1810px) { - form.semanticForms fieldset dl, form.semanticForms dl, - fieldset fieldset dl, - fieldset dl { - grid-template-columns: repeat(7, minmax(var(--semanticFormsInputMinWidth), 1fr)); - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 1) { - grid-column: 1; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 2), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 2), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 2), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 2), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 2), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 2), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 2), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 2) { - grid-column: 2; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 3), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 3), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 3), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 3), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 3), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 3), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 3), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 3) { - grid-column: 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 4), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 4), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 4), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 4), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 4), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 4), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 4), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 4) { - grid-column: 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 5), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 5), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 5), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 5), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 5), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 5), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 5), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 5) { - grid-column: 5; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 6), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 6), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 6), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 6), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 6), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 6), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 6), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 6) { - grid-column: 6; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(7n + 7), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(7n + 7), form.semanticForms dl:has(:not(div)) dt:nth-of-type(7n + 7), form.semanticForms dl:has(:not(div)) dd:nth-of-type(7n + 7), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(7n + 7), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(7n + 7), - fieldset dl:has(:not(div)) dt:nth-of-type(7n + 7), - fieldset dl:has(:not(div)) dd:nth-of-type(7n + 7) { - grid-column: 7; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full { - grid-column: span 5; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dd.colspan-4 { - grid-column: span 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dd.colspan-3 { - grid-column: span 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dd.colspan-2 { - grid-column: span 2; - } -} -@container semanticForm (width >= 1550px) and (width < 1810px) { - form.semanticForms fieldset dl, form.semanticForms dl, - fieldset fieldset dl, - fieldset dl { - grid-template-columns: repeat(6, minmax(var(--semanticFormsInputMinWidth), 1fr)); - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(6n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(6n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(6n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(6n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(6n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(6n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(6n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(6n + 1) { - grid-column: 1; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(6n + 2), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(6n + 2), form.semanticForms dl:has(:not(div)) dt:nth-of-type(6n + 2), form.semanticForms dl:has(:not(div)) dd:nth-of-type(6n + 2), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(6n + 2), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(6n + 2), - fieldset dl:has(:not(div)) dt:nth-of-type(6n + 2), - fieldset dl:has(:not(div)) dd:nth-of-type(6n + 2) { - grid-column: 2; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(6n + 3), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(6n + 3), form.semanticForms dl:has(:not(div)) dt:nth-of-type(6n + 3), form.semanticForms dl:has(:not(div)) dd:nth-of-type(6n + 3), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(6n + 3), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(6n + 3), - fieldset dl:has(:not(div)) dt:nth-of-type(6n + 3), - fieldset dl:has(:not(div)) dd:nth-of-type(6n + 3) { - grid-column: 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(6n + 4), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(6n + 4), form.semanticForms dl:has(:not(div)) dt:nth-of-type(6n + 4), form.semanticForms dl:has(:not(div)) dd:nth-of-type(6n + 4), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(6n + 4), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(6n + 4), - fieldset dl:has(:not(div)) dt:nth-of-type(6n + 4), - fieldset dl:has(:not(div)) dd:nth-of-type(6n + 4) { - grid-column: 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(6n + 5), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(6n + 5), form.semanticForms dl:has(:not(div)) dt:nth-of-type(6n + 5), form.semanticForms dl:has(:not(div)) dd:nth-of-type(6n + 5), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(6n + 5), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(6n + 5), - fieldset dl:has(:not(div)) dt:nth-of-type(6n + 5), - fieldset dl:has(:not(div)) dd:nth-of-type(6n + 5) { - grid-column: 5; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(6n + 6), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(6n + 6), form.semanticForms dl:has(:not(div)) dt:nth-of-type(6n + 6), form.semanticForms dl:has(:not(div)) dd:nth-of-type(6n + 6), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(6n + 6), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(6n + 6), - fieldset dl:has(:not(div)) dt:nth-of-type(6n + 6), - fieldset dl:has(:not(div)) dd:nth-of-type(6n + 6) { - grid-column: 6; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full { - grid-column: span 5; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dd.colspan-4 { - grid-column: span 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dd.colspan-3 { - grid-column: span 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dd.colspan-2 { - grid-column: span 2; - } -} -@container semanticForm (width >= 1290px) and (width < 1550px) { - form.semanticForms fieldset dl, form.semanticForms dl, - fieldset fieldset dl, - fieldset dl { - grid-template-columns: repeat(5, minmax(var(--semanticFormsInputMinWidth), 1fr)); - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(5n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(5n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(5n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(5n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(5n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(5n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(5n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(5n + 1) { - grid-column: 1; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(5n + 2), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(5n + 2), form.semanticForms dl:has(:not(div)) dt:nth-of-type(5n + 2), form.semanticForms dl:has(:not(div)) dd:nth-of-type(5n + 2), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(5n + 2), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(5n + 2), - fieldset dl:has(:not(div)) dt:nth-of-type(5n + 2), - fieldset dl:has(:not(div)) dd:nth-of-type(5n + 2) { - grid-column: 2; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(5n + 3), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(5n + 3), form.semanticForms dl:has(:not(div)) dt:nth-of-type(5n + 3), form.semanticForms dl:has(:not(div)) dd:nth-of-type(5n + 3), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(5n + 3), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(5n + 3), - fieldset dl:has(:not(div)) dt:nth-of-type(5n + 3), - fieldset dl:has(:not(div)) dd:nth-of-type(5n + 3) { - grid-column: 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(5n + 4), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(5n + 4), form.semanticForms dl:has(:not(div)) dt:nth-of-type(5n + 4), form.semanticForms dl:has(:not(div)) dd:nth-of-type(5n + 4), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(5n + 4), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(5n + 4), - fieldset dl:has(:not(div)) dt:nth-of-type(5n + 4), - fieldset dl:has(:not(div)) dd:nth-of-type(5n + 4) { - grid-column: 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(5n + 5), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(5n + 5), form.semanticForms dl:has(:not(div)) dt:nth-of-type(5n + 5), form.semanticForms dl:has(:not(div)) dd:nth-of-type(5n + 5), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(5n + 5), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(5n + 5), - fieldset dl:has(:not(div)) dt:nth-of-type(5n + 5), - fieldset dl:has(:not(div)) dd:nth-of-type(5n + 5) { - grid-column: 5; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full { - grid-column: span 5; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dd.colspan-4 { - grid-column: span 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dd.colspan-3 { - grid-column: span 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dd.colspan-2 { - grid-column: span 2; - } -} -@container semanticForm (width >= 1030px) and (width < 1290px) { - form.semanticForms fieldset dl, form.semanticForms fieldset.colspan-5 dl, form.semanticForms dl, form.semanticForms dl.colspan-5, - fieldset fieldset dl, - fieldset fieldset.colspan-5 dl, - fieldset dl, - fieldset dl.colspan-5 { - grid-template-columns: repeat(4, minmax(var(--semanticFormsInputMinWidth), 1fr)); - } - form.semanticForms fieldset dl div.colspan-5, form.semanticForms fieldset.colspan-5 dl div.colspan-5, form.semanticForms dl div.colspan-5, form.semanticForms dl.colspan-5 div.colspan-5, - fieldset fieldset dl div.colspan-5, - fieldset fieldset.colspan-5 dl div.colspan-5, - fieldset dl div.colspan-5, - fieldset dl.colspan-5 div.colspan-5 { - grid-column: span 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(4n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(4n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(4n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(4n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(4n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(4n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(4n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(4n + 1), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 1), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 1) { - grid-column: 1; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(4n + 2), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(4n + 2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 2), form.semanticForms dl:has(:not(div)) dt:nth-of-type(4n + 2), form.semanticForms dl:has(:not(div)) dd:nth-of-type(4n + 2), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 2), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 2), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(4n + 2), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(4n + 2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 2), - fieldset dl:has(:not(div)) dt:nth-of-type(4n + 2), - fieldset dl:has(:not(div)) dd:nth-of-type(4n + 2), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 2), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 2) { - grid-column: 2; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(4n + 3), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(4n + 3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 3), form.semanticForms dl:has(:not(div)) dt:nth-of-type(4n + 3), form.semanticForms dl:has(:not(div)) dd:nth-of-type(4n + 3), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 3), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 3), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(4n + 3), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(4n + 3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 3), - fieldset dl:has(:not(div)) dt:nth-of-type(4n + 3), - fieldset dl:has(:not(div)) dd:nth-of-type(4n + 3), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 3), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 3) { - grid-column: 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(4n + 4), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(4n + 4), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 4), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 4), form.semanticForms dl:has(:not(div)) dt:nth-of-type(4n + 4), form.semanticForms dl:has(:not(div)) dd:nth-of-type(4n + 4), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 4), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 4), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(4n + 4), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(4n + 4), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(4n + 4), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(4n + 4), - fieldset dl:has(:not(div)) dt:nth-of-type(4n + 4), - fieldset dl:has(:not(div)) dd:nth-of-type(4n + 4), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(4n + 4), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(4n + 4) { - grid-column: 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-full { - grid-column: span 4; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-3 { - grid-column: span 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-2 { - grid-column: span 2; - } +@container semanticForm (width >= 1030px) and (width < 1290px) { + form.semanticForms fieldset dl, form.semanticForms fieldset.colspan-5 dl, form.semanticForms dl, form.semanticForms dl.colspan-5, + fieldset fieldset dl, + fieldset fieldset.colspan-5 dl, + fieldset dl, + fieldset dl.colspan-5 { + grid-template-columns: repeat(4, minmax(var(--semanticFormsInputMinWidth), 1fr)); + } + form.semanticForms fieldset dl div.colspan-5, form.semanticForms fieldset.colspan-5 dl div.colspan-5, form.semanticForms dl div.colspan-5, form.semanticForms dl.colspan-5 div.colspan-5, + fieldset fieldset dl div.colspan-5, + fieldset fieldset.colspan-5 dl div.colspan-5, + fieldset dl div.colspan-5, + fieldset dl.colspan-5 div.colspan-5 { + grid-column: span 4; + } } @container semanticForm (width >= 850px) and (width < 1030px) { form.semanticForms fieldset dl, form.semanticForms fieldset.colspan-4 dl, form.semanticForms fieldset.colspan-5 dl, form.semanticForms dl, form.semanticForms dl.colspan-4, form.semanticForms dl.colspan-5, @@ -2868,117 +948,6 @@ fieldset { fieldset dl.colspan-5 div.colspan-5 { grid-column: span 3; } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(3n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(3n + 1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(3n + 1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(3n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(3n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(3n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(3n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(3n + 1), form.semanticForms dl.colspan-4:has(:not(div)) dt:nth-of-type(3n + 1), form.semanticForms dl.colspan-4:has(:not(div)) dd:nth-of-type(3n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(3n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(3n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(3n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(3n + 1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(3n + 1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(3n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(3n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(3n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(3n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(3n + 1), - fieldset dl.colspan-4:has(:not(div)) dt:nth-of-type(3n + 1), - fieldset dl.colspan-4:has(:not(div)) dd:nth-of-type(3n + 1), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(3n + 1), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(3n + 1) { - grid-column: 1; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(3n + 2), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(3n + 2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(3n + 2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(3n + 2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(3n + 2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(3n + 2), form.semanticForms dl:has(:not(div)) dt:nth-of-type(3n + 2), form.semanticForms dl:has(:not(div)) dd:nth-of-type(3n + 2), form.semanticForms dl.colspan-4:has(:not(div)) dt:nth-of-type(3n + 2), form.semanticForms dl.colspan-4:has(:not(div)) dd:nth-of-type(3n + 2), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(3n + 2), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(3n + 2), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(3n + 2), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(3n + 2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(3n + 2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(3n + 2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(3n + 2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(3n + 2), - fieldset dl:has(:not(div)) dt:nth-of-type(3n + 2), - fieldset dl:has(:not(div)) dd:nth-of-type(3n + 2), - fieldset dl.colspan-4:has(:not(div)) dt:nth-of-type(3n + 2), - fieldset dl.colspan-4:has(:not(div)) dd:nth-of-type(3n + 2), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(3n + 2), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(3n + 2) { - grid-column: 2; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(3n + 3), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(3n + 3), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(3n + 3), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(3n + 3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(3n + 3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(3n + 3), form.semanticForms dl:has(:not(div)) dt:nth-of-type(3n + 3), form.semanticForms dl:has(:not(div)) dd:nth-of-type(3n + 3), form.semanticForms dl.colspan-4:has(:not(div)) dt:nth-of-type(3n + 3), form.semanticForms dl.colspan-4:has(:not(div)) dd:nth-of-type(3n + 3), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(3n + 3), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(3n + 3), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(3n + 3), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(3n + 3), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(3n + 3), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(3n + 3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(3n + 3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(3n + 3), - fieldset dl:has(:not(div)) dt:nth-of-type(3n + 3), - fieldset dl:has(:not(div)) dd:nth-of-type(3n + 3), - fieldset dl.colspan-4:has(:not(div)) dt:nth-of-type(3n + 3), - fieldset dl.colspan-4:has(:not(div)) dd:nth-of-type(3n + 3), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(3n + 3), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(3n + 3) { - grid-column: 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-4:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-full { - grid-column: span 3; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-4:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-2 { - grid-column: span 2; - } } @container semanticForm (width >= 510px) and (width < 850px) { form.semanticForms fieldset dl, form.semanticForms fieldset.colspan-3 dl, form.semanticForms fieldset.colspan-4 dl, form.semanticForms fieldset.colspan-5 dl, form.semanticForms dl, form.semanticForms dl.colspan-3, form.semanticForms dl.colspan-4, form.semanticForms dl.colspan-5, @@ -3035,127 +1004,6 @@ fieldset { fieldset dl.colspan-5 div.colspan-5 { grid-column: span 2; } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms dl.colspan-3:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms dl.colspan-3:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms dl.colspan-4:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms dl.colspan-4:has(:not(div)) dd:nth-of-type(2n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(2n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset fieldset.colspan-3 dl:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset dl.colspan-3:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset dl.colspan-3:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset dl.colspan-4:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset dl.colspan-4:has(:not(div)) dd:nth-of-type(2n + 1), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(2n + 1), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(2n + 1) { - grid-column: 1; - } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms dl:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms dl:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms dl.colspan-3:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms dl.colspan-3:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms dl.colspan-4:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms dl.colspan-4:has(:not(div)) dd:nth-of-type(2n + 2), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(2n + 2), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset fieldset.colspan-3 dl:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset dl:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset dl:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset dl.colspan-3:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset dl.colspan-3:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset dl.colspan-4:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset dl.colspan-4:has(:not(div)) dd:nth-of-type(2n + 2), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(2n + 2), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(2n + 2) { - grid-column: 2; - } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-3:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-4:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-full { - grid-column: span 2; - } } @container semanticForm (width < 510px) { form.semanticForms fieldset dl, form.semanticForms fieldset.colspan-2 dl, form.semanticForms fieldset.colspan-3 dl, form.semanticForms fieldset.colspan-4 dl, form.semanticForms fieldset.colspan-5 dl, form.semanticForms dl, form.semanticForms dl.colspan-2, form.semanticForms dl.colspan-3, form.semanticForms dl.colspan-4, form.semanticForms dl.colspan-5, @@ -3169,7 +1017,7 @@ fieldset { fieldset dl.colspan-3, fieldset dl.colspan-4, fieldset dl.colspan-5 { - grid-template-columns: repeat(1, minmax(var(--semanticFormsInputMinWidth), 1fr)); + grid-template-columns: 1fr; } form.semanticForms fieldset dl div.colspan-2, form.semanticForms fieldset dl div.colspan-3, @@ -3244,152 +1092,393 @@ fieldset { fieldset dl.colspan-5 div.colspan-5 { grid-column: span 1; } - form.semanticForms fieldset dl:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms fieldset dl:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms dl:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms dl:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms dl.colspan-2:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms dl.colspan-2:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms dl.colspan-3:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms dl.colspan-3:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms dl.colspan-4:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms dl.colspan-4:has(:not(div)) dd:nth-of-type(n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dt:nth-of-type(n + 1), form.semanticForms dl.colspan-5:has(:not(div)) dd:nth-of-type(n + 1), - fieldset fieldset dl:has(:not(div)) dt:nth-of-type(n + 1), - fieldset fieldset dl:has(:not(div)) dd:nth-of-type(n + 1), - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:nth-of-type(n + 1), - fieldset fieldset.colspan-2 dl:has(:not(div)) dd:nth-of-type(n + 1), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:nth-of-type(n + 1), - fieldset fieldset.colspan-3 dl:has(:not(div)) dd:nth-of-type(n + 1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:nth-of-type(n + 1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd:nth-of-type(n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:nth-of-type(n + 1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd:nth-of-type(n + 1), - fieldset dl:has(:not(div)) dt:nth-of-type(n + 1), - fieldset dl:has(:not(div)) dd:nth-of-type(n + 1), - fieldset dl.colspan-2:has(:not(div)) dt:nth-of-type(n + 1), - fieldset dl.colspan-2:has(:not(div)) dd:nth-of-type(n + 1), - fieldset dl.colspan-3:has(:not(div)) dt:nth-of-type(n + 1), - fieldset dl.colspan-3:has(:not(div)) dd:nth-of-type(n + 1), - fieldset dl.colspan-4:has(:not(div)) dt:nth-of-type(n + 1), - fieldset dl.colspan-4:has(:not(div)) dd:nth-of-type(n + 1), - fieldset dl.colspan-5:has(:not(div)) dt:nth-of-type(n + 1), - fieldset dl.colspan-5:has(:not(div)) dd:nth-of-type(n + 1) { - grid-column: 1; +} + +form.semanticForms.lowFlow, +form.semanticForms:not(.semanticFormsActive) { + gap: 10px; +} +form.semanticForms.lowFlow dl, +form.semanticForms:not(.semanticFormsActive) dl { + gap: 10px; + margin-bottom: 0px; +} +form.semanticForms.lowFlow div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]), +form.semanticForms:not(.semanticFormsActive) div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) { + padding-left: 11px; +} +form.semanticForms.lowFlow div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]):has(dd > input[type=radio]), +form.semanticForms:not(.semanticFormsActive) div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]):has(dd > input[type=radio]) { + margin-top: -2px; +} +form.semanticForms.lowFlow div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) dt label, +form.semanticForms:not(.semanticFormsActive) div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) dt label { + transform: scale(1); + margin-top: 4px; + margin-left: -4px; +} +form.semanticForms.lowFlow div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) dd, +form.semanticForms:not(.semanticFormsActive) div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) dd { + margin-top: 0; +} +form.semanticForms.lowFlow div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) dd label, +form.semanticForms:not(.semanticFormsActive) div:not(:has(dd > ul)):has(dd > input[type=checkbox], dd > input[type=radio]) dd label { + font-size: small; + margin-top: -2px; + padding-left: 10px; +} +form.semanticForms.lowFlow dt, +form.semanticForms:not(.semanticFormsActive) dt { + min-width: var(--semanticFormsInputMinWidth); /* this matches the max-width of js-enabled inputs */ +} +form.semanticForms.lowFlow dt label, +form.semanticForms:not(.semanticFormsActive) dt label { + position: absolute; + display: block; + height: 11px; + transform: scale(0.7); + transform-origin: left center; + padding-left: 29px; + margin-top: -2px; +} +form.semanticForms.lowFlow dt:has(+ dd input:required) label::after, +form.semanticForms:not(.semanticFormsActive) dt:has(+ dd input:required) label::after { + content: " *"; + color: red; +} +form.semanticForms.lowFlow dt:has(+ dd.checkboxes) label, form.semanticForms.lowFlow dt:has(+ dd.radios) label, +form.semanticForms:not(.semanticFormsActive) dt:has(+ dd.checkboxes) label, +form.semanticForms:not(.semanticFormsActive) dt:has(+ dd.radios) label { + padding-left: 15px; +} +form.semanticForms.lowFlow dd, +form.semanticForms:not(.semanticFormsActive) dd { + margin-top: var(--semanticFormsInputTopMargin); + min-width: var(--semanticFormsInputMinWidth); /* this matches the max-width of js-enabled inputs */ +} +form.semanticForms.lowFlow dd.checkboxes, form.semanticForms.lowFlow dd.radios, +form.semanticForms:not(.semanticFormsActive) dd.checkboxes, +form.semanticForms:not(.semanticFormsActive) dd.radios { + margin-top: 0; +} +form.semanticForms.lowFlow dd.checkboxes ul input[type=radio], form.semanticForms.lowFlow dd.radios ul input[type=radio], +form.semanticForms:not(.semanticFormsActive) dd.checkboxes ul input[type=radio], +form.semanticForms:not(.semanticFormsActive) dd.radios ul input[type=radio] { + margin-top: 3px; +} +form.semanticForms.lowFlow dd.checkboxes ul label, form.semanticForms.lowFlow dd.radios ul label, +form.semanticForms:not(.semanticFormsActive) dd.checkboxes ul label, +form.semanticForms:not(.semanticFormsActive) dd.radios ul label { + padding-top: 7px; + padding-left: 0; + font-size: var(--semanticFormsFontSize); +} +form.semanticForms.lowFlow dd.checkboxes ul + label, form.semanticForms.lowFlow dd.radios ul + label, +form.semanticForms:not(.semanticFormsActive) dd.checkboxes ul + label, +form.semanticForms:not(.semanticFormsActive) dd.radios ul + label { + margin-top: 0; + font-size: small; +} +form.semanticForms.lowFlow dd input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio], [type=range]), +form.semanticForms.lowFlow dd select, +form.semanticForms.lowFlow dd textarea, +form.semanticForms:not(.semanticFormsActive) dd input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio], [type=range]), +form.semanticForms:not(.semanticFormsActive) dd select, +form.semanticForms:not(.semanticFormsActive) dd textarea { + padding-right: 6px; +} +form.semanticForms.lowFlow dd label, +form.semanticForms:not(.semanticFormsActive) dd label { + padding-left: 10px; + margin-top: -5px; + font-size: small; + color: var(--semanticFormsPlaceholderColor); +} +form.semanticForms.lowFlow dd button:not(.clear, .show), +form.semanticForms.lowFlow dd input[type=submit]:not(.clear, .show), +form.semanticForms.lowFlow dd input[type=button]:not(.clear, .show), +form.semanticForms:not(.semanticFormsActive) dd button:not(.clear, .show), +form.semanticForms:not(.semanticFormsActive) dd input[type=submit]:not(.clear, .show), +form.semanticForms:not(.semanticFormsActive) dd input[type=button]:not(.clear, .show) { + margin-top: 0; +} + +.checkboxes ul, +.radios ul { + margin-top: var(--semanticFormsInputTopMargin); +} + +.semanticForms fieldset { + border-radius: var(--semanticFormsBorderRadius); + background: var(--semanticFormsFormSubBgColor); + border: 1px var(--semanticFormsSubBorderColor) solid; + display: flex; + flex-direction: column; + gap: 5px; + padding: 10px 10px 20px 10px; + margin-bottom: 15px; +} +.semanticForms fieldset fieldset { + background-color: var(--semanticFormsNestedFieldsetBgColor); + border: var(--semanticFormsNestedFieldsetBorder); + margin-top: 15px; +} +.semanticForms fieldset fieldset input:not([type=submit], [type=reset], [type=button], [type=image], [type=checkbox], [type=radio]), +.semanticForms fieldset fieldset select, +.semanticForms fieldset fieldset textarea { + background-color: var(--semanticFormsNestedInputBgColor); +} +.semanticForms details { + box-sizing: border-box; + position: relative; + background-color: var(--semanticFormsNestedFieldsetBgColor); + border: var(--semanticFormsNestedFieldsetBorder); + border-radius: var(--semanticFormsBorderRadius); + display: flex; + flex-direction: column; + gap: 5px; + padding: 20px 10px 10px 10px; + margin-top: 10px; + min-height: calc(var(--semanticFormsFontSize) + 20px); +} +.semanticForms details::details-content { + visibility: hidden; + opacity: 0; + transition: opacity 250ms ease-in, visibility 0ms ease-in 250ms; +} +@supports (interpolate-size: allow-keywords) { + .semanticForms details { + transition: opacity 250ms ease-in, visibility 0ms ease-in 250ms, height 250ms; } - form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset dl:has(:not(div)) dd.colspan-1, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd.colspan-1, form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-2 dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-1, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-3 dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-1, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-4 dl:has(:not(div)) dd.colspan-full, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-1, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, form.semanticForms fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl:has(:not(div)) dd.colspan-1, form.semanticForms dl:has(:not(div)) dd.colspan-2, form.semanticForms dl:has(:not(div)) dd.colspan-3, form.semanticForms dl:has(:not(div)) dd.colspan-4, form.semanticForms dl:has(:not(div)) dd.colspan-5, form.semanticForms dl:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-2:has(:not(div)) dd.colspan-1, form.semanticForms dl.colspan-2:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-2:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-2:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-2:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-2:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-1, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-3:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-1, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-4:has(:not(div)) dd.colspan-full, form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-1), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), form.semanticForms dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-1, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-2, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-3, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-4, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-5, form.semanticForms dl.colspan-5:has(:not(div)) dd.colspan-full, - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset dl:has(:not(div)) dd.colspan-1, - fieldset fieldset dl:has(:not(div)) dd.colspan-2, - fieldset fieldset dl:has(:not(div)) dd.colspan-3, - fieldset fieldset dl:has(:not(div)) dd.colspan-4, - fieldset fieldset dl:has(:not(div)) dd.colspan-5, - fieldset fieldset dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-2 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-2 dl:has(:not(div)) dd.colspan-1, - fieldset fieldset.colspan-2 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-2 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-2 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-2 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-2 dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-3 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-1, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-3 dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-4 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-1, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-4 dl:has(:not(div)) dd.colspan-full, - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset fieldset.colspan-5 dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-1, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-2, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-3, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-4, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-5, - fieldset fieldset.colspan-5 dl:has(:not(div)) dd.colspan-full, - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl:has(:not(div)) dd.colspan-1, - fieldset dl:has(:not(div)) dd.colspan-2, - fieldset dl:has(:not(div)) dd.colspan-3, - fieldset dl:has(:not(div)) dd.colspan-4, - fieldset dl:has(:not(div)) dd.colspan-5, - fieldset dl:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-2:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-2:has(:not(div)) dd.colspan-1, - fieldset dl.colspan-2:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-2:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-2:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-2:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-2:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-3:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-3:has(:not(div)) dd.colspan-1, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-3:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-4:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-4:has(:not(div)) dd.colspan-1, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-4:has(:not(div)) dd.colspan-full, - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-1), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-2), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-3), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-4), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-5), - fieldset dl.colspan-5:has(:not(div)) dt:has(+ dd.colspan-full), - fieldset dl.colspan-5:has(:not(div)) dd.colspan-1, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-2, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-3, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-4, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-5, - fieldset dl.colspan-5:has(:not(div)) dd.colspan-full { - grid-column: span 1; + .semanticForms details::details-content { + height: 0; + overflow: hidden; + transition: height 250ms, content-visibility 250ms; + transition-behavior: allow-discrete; + } +} +.semanticForms details summary { + cursor: pointer; + margin: 0; + margin-bottom: 10px; + line-height: 1; + position: absolute; + top: 10px; + left: 22px; + transition: top 250ms; +} +.semanticForms details summary::-webkit-details-marker, .semanticForms details summary::marker { + content: ""; +} +.semanticForms details summary::before { + content: ""; + border-width: 0.4rem; + border-style: solid; + border-color: transparent transparent transparent var(--semanticFormsTextColor); + position: absolute; + top: 0; + left: -10px; + transform: rotate(0); + transform-origin: 0.2rem 50%; + transition: 250ms transform ease; +} +.semanticForms details[open]::details-content { + visibility: visible; + opacity: 1; + transition: opacity 250ms ease-in, visibility 0ms ease-in 0ms; +} +@supports (interpolate-size: allow-keywords) { + .semanticForms details[open]::details-content { + height: auto; } } +.semanticForms details[open] summary::before { + transform: rotate(90deg); +} +.semanticForms details[open] > dl:first-of-type { + margin-top: 15px; + margin-bottom: 15px; +} +.semanticForms dl { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(var(--semanticFormsInputMinWidth), 1fr)); + gap: 10px; + margin-bottom: 10px; +} +.semanticForms dl div { + position: relative; + width: 100%; + max-width: var(--semanticFormsInputMaxWidth); +} +.semanticForms dl div:has([data-max-content]) { + min-width: 150px; + max-width: max-content; +} +.semanticForms dl div:has([data-max-content]) dd { + width: max-content; +} +.semanticForms dl div:has([data-max-content]) dd input, .semanticForms dl div:has([data-max-content]) dd select { + field-sizing: content; + min-width: 150px; + max-width: max-content; +} +.semanticForms dl div:has(dd > button:only-child, dd > input[type=button]:only-child, dd > input[type=submit]:only-child, dd > input[type=reset]:only-child) dt label { + display: none; +} +.semanticForms dl div dd { + position: relative; + display: flex; + flex-direction: column; + gap: 10px; + max-width: 100%; +} +.semanticForms dl div dd.singleCheckbox, .semanticForms dl div dd.singleRadio { + display: grid; + grid-template-columns: 15px 1fr; + align-items: center; + padding-left: 11px; +} +.semanticForms dl div dd.singleCheckbox > :not(input[type=checkbox], input[type=radio], label), .semanticForms dl div dd.singleRadio > :not(input[type=checkbox], input[type=radio], label) { + grid-column: 1/-1; +} +.semanticForms dl div dd.singleCheckbox label:nth-of-type(2), .semanticForms dl div dd.singleRadio label:nth-of-type(2) { + grid-column: 1/-1; + padding: 0 10px; + font-size: small; + color: var(--semanticFormsTextColor); +} +.semanticForms dl div dd.singleRadio > input { + margin: 0; +} +.semanticForms dl div dd.checkboxes ul, .semanticForms dl div dd.radios ul { + display: flex; + flex-direction: column; + margin-top: var(--semanticFormsInputTopMargin); + padding-left: 10px; + gap: 5px; +} +.semanticForms dl div dd.checkboxes ul li, .semanticForms dl div dd.radios ul li { + display: flex; + align-items: center; + gap: 5px; +} +.semanticForms dl div dd.checkboxes > label, .semanticForms dl div dd.radios > label { + padding-left: 20px; + font-size: small; + color: var(--semanticFormsTextColor); +} +.semanticForms dl div dd:has(button:only-child, input[type=button]:only-child, input[type=submit]:only-child, input[type=reset]:only-child) { + margin-left: 0; +} +.semanticForms dl div dd:has(button:only-child, input[type=button]:only-child, input[type=submit]:only-child, input[type=reset]:only-child) button, .semanticForms dl div dd:has(button:only-child, input[type=button]:only-child, input[type=submit]:only-child, input[type=reset]:only-child) input[type=button], .semanticForms dl div dd:has(button:only-child, input[type=button]:only-child, input[type=submit]:only-child, input[type=reset]:only-child) input[type=submit], .semanticForms dl div dd:has(button:only-child, input[type=button]:only-child, input[type=submit]:only-child, input[type=reset]:only-child) input[type=reset] { + height: var(--semanticFormsInputHeight); +} +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) { + display: grid; + grid-template-columns: 2fr 1fr; +} +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) button.clear, .semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) button.show { + right: 36%; +} +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) input:not([type=submit]), .semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) select, .semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) textarea { + grid-row: 1/2; + grid-column: 1/2; +} +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) button:not(.clear, .show), +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) input[type=submit]:not(.clear, .show), +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) input[type=button]:not(.clear, .show) { + grid-row: 1/2; + grid-column: 2/3; + width: 100%; + max-width: 100%; + padding: 10px; + height: var(--semanticFormsInputHeight); + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + display: inline-block; +} +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) label:nth-of-type(2), +.semanticForms dl div dd:has(input ~ button:not(.clear, .show), input ~ input[type=submit], input ~ input[type=reset], input ~ input[type=button], select ~ button:not(.clear, .show), select ~ input[type=submit], select ~ input[type=reset], select ~ input[type=button]) label:not(.floatLabelFormAnimatedLabel) { + grid-row: 2/3; + grid-column: 1/-1; +} +.semanticForms p:has(input:not([type=checkbox], [type=radio]), textarea, label) { + display: flex; + flex-direction: column; + gap: 5px; +} +.semanticForms p:has(input[type=checkbox], input[type=radio]) { + display: flex; + flex-direction: row; + align-items: center; + gap: 5px; +} +.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea), +.semanticForms ul:has(li > input, li > label, li > button, li > select, li > textarea) { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + gap: 10px; + list-style-type: none; +} +.semanticForms .align-start { + justify-self: start; +} +.semanticForms .align-center { + justify-self: center; +} +.semanticForms .align-end { + justify-self: end; +} + +.semanticForms table, +table.semanticForms { + table-layout: fixed; + width: 100%; + border-spacing: 0; + border: var(--semanticFormsBorder); + border-radius: 10px; + margin-bottom: 15px; + overflow: hidden; +} +.semanticForms table tr.title th, +table.semanticForms tr.title th { + background-color: var(--semanticFormsTableTitleColor); +} +.semanticForms table th, +table.semanticForms th { + background-color: var(--semanticFormsTableHeaderColor); + font-weight: bold; +} +.semanticForms table tr:nth-child(odd) td, +table.semanticForms tr:nth-child(odd) td { + background-color: var(--semanticFormsTableOddColor); +} +.semanticForms table tr:nth-child(even) td, +table.semanticForms tr:nth-child(even) td { + background-color: var(--semanticFormsTableEvenColor); +} +.semanticForms table td, .semanticForms table th, +table.semanticForms td, +table.semanticForms th { + border-right: var(--semanticFormsTableBorder); + border-bottom: var(--semanticFormsTableBorder); + padding: 7px 10px; +} +.semanticForms table th:last-of-type, .semanticForms table td:last-of-type, +table.semanticForms th:last-of-type, +table.semanticForms td:last-of-type { + border-right: none; +} +.semanticForms table tbody tr:last-of-type th, .semanticForms table tbody tr:last-of-type td, +table.semanticForms tbody tr:last-of-type th, +table.semanticForms tbody tr:last-of-type td { + border-bottom: none; +} +.semanticForms table menu:has(li > input, li > label, li > button, li > select, li > textarea, li > a), +table.semanticForms menu:has(li > input, li > label, li > button, li > select, li > textarea, li > a) { + width: max-content; +} /*# sourceMappingURL=semantic-forms.css.map */ diff --git a/dist/semantic-forms.js b/dist/semantic-forms.js index d7c14f1..12ad353 100644 --- a/dist/semantic-forms.js +++ b/dist/semantic-forms.js @@ -1,32 +1,32 @@ (function(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define("semanticForms",[],factory);else if(typeof exports==="object")exports["semanticForms"]=factory();else root["semanticForms"]=factory()})(this,()=>/******/(()=>{// webpackBootstrap /******/var __webpack_modules__={ /***/90: -/***/module=>{const semanticForms=()=>{ +/***/(module,__unused_webpack_exports,__webpack_require__)=>{const{createKeyboardShortcut,shortcutListener}=__webpack_require__(497);const{enhanceInput,handleUndoRedo}=__webpack_require__(866);const semanticForms=()=>{ // do some feature detection so none of the JS executes if the browser is too old -if(typeof document.getElementsByClassName!=="function"||typeof document.querySelector!=="function"||!document.body.classList||!window.MutationObserver){console.warn("semantic-forms was loaded into an unsupported browser and will not execute.");return}const passwordShow='';const passwordHide='';const helpTextIcon='';const nodeNameLookup=["TEXTAREA","SELECT"];const inputTypeLookup=["checkbox","color","date","datetime-local","email","file","image","month","number","password","radio","range","search","tel","text","time","url","week"];const keyboardShortcuts=[]; +if(typeof document.getElementsByClassName!=="function"||typeof document.querySelector!=="function"||!document.body.classList||!window.MutationObserver){console.warn("semantic-forms was loaded into an unsupported browser and will not execute.");return} // custom keyboard shortcut listener -document.addEventListener("keydown",e=>{const specialCharMap={Minus:"-",Equal:"=",BracketLeft:"[",BracketRight:"]",Backslash:"\\",Semicolon:";",Quote:"'",Comma:",",Period:".",Slash:"/",Backquote:"`"};const shiftSpecialCharMap={1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")",Minus:"_",Equal:"+",BracketLeft:"{",BracketRight:"}",Backslash:"|",Semicolon:":",Quote:'"',Comma:"<",Period:">",Slash:"?",Backquote:"~"};const shortcut=keyboardShortcuts.find(shortcut=>{let matchesKey=false;if(e.altKey&&!e.shiftKey) -// mac adjusts the key value if altKey is pressed -matchesKey="Key"+shortcut.key.toUpperCase()===e.code||"Digit"+shortcut.key.toUpperCase()===e.code||shortcut.key===e.key||specialCharMap[e.code]===shortcut.key;else if(e.shiftKey){ -// check shift special character map -const code=e.code.replace(/Key|Digit/,"");matchesKey=(shiftSpecialCharMap[code]||shiftSpecialCharMap[e.key])&&(shiftSpecialCharMap[code]===shortcut.key||shiftSpecialCharMap[e.key]===shortcut.key)}else matchesKey=shortcut.key.toUpperCase()===e.key.toUpperCase();if(!matchesKey)return false;let matchesModifier;if(shortcut.modifier){if(shortcut.modifier===shortcut.defaultModifier)matchesModifier=shortcut.os==="windows"||shortcut.os==="linux"?e.ctrlKey:e.metaKey;if(shortcut.modifier==="meta")matchesModifier=e.metaKey;if(shortcut.modifier==="alt")matchesModifier=e.altKey;if(shortcut.modifier==="ctrl")matchesModifier=e.ctrlKey}return matchesModifier});if(shortcut){e.preventDefault();shortcut.input.focus()}}); +const keyboardShortcuts=[];document.addEventListener("keydown",e=>shortcutListener(e,keyboardShortcuts)); // progressively enhance form elements that have the semanticForms class const forms=document.querySelectorAll("form.semanticForms:not(.semanticFormsActive), table.semanticForms:not(.semanticFormsActive)");for(const form of forms){form.classList.add("semanticFormsActive");if(form.classList.contains("lowFlow"))continue; // update each input in the semantic form -const inputs=Array.from(form.querySelectorAll("input, textarea, select"));for(let input of inputs){ -// ignore input if it has previously been formatted -if(input.classList.contains("semanticform")||!input.id)continue;const type=input.getAttribute("type");if(nodeNameLookup.includes(input.nodeName)||inputTypeLookup.includes(type)){ -// recursively find
element -let dl=input.parentNode;while(dl&&dl.nodeName!=="DL")dl=dl.parentNode;if(!dl)continue;if(!dl.classList.contains("floatLabelForm"))dl.classList.add("floatLabelForm");const label=input.parentNode.parentNode.id&&(type==="checkbox"||type==="radio")?document.querySelector("label[data-for="+input.parentNode.parentNode.id.replace(/\./g,"\\.")+"]"):document.querySelector("label[for="+input.id.replace(/\./g,"\\.")+"]");if(!label)console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) without a properly associated label. Make sure there is a label for it and the label has a matching "for" attribute.`);input.classList.add("semanticform"); -// #region create labels -const newLabel=document.createElement("label");newLabel.className="floatLabelFormAnimatedLabel";if(type==="checkbox"||type==="radio"){ -// recursively find
element -let dd=input.parentNode;while(dd&&dd.nodeName!=="DD")dd=dd.parentNode;if(!dd){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that is not inside a
element.`);continue}if(dd.firstChild.nodeName!=="LABEL"){if(type==="checkbox"&&input.parentNode.nodeName==="DD"){newLabel.setAttribute("for",input.id);input.parentNode.classList.add("singleCheckbox");newLabel.className="";label.setAttribute("hidden","hidden");insertAfter(newLabel,input)}if(type==="radio"&&input.parentNode.nodeName==="DD"){newLabel.setAttribute("for",input.id);input.parentNode.classList.add("singleRadio");newLabel.className="";label.setAttribute("hidden","hidden");insertAfter(newLabel,input)}newLabel.innerHTML=label.innerHTML;if(label.hasAttribute("title")&&label.getAttribute("data-show-help-icon")!==null&&!label.querySelector("span.help")){const text=label.getAttribute("title");label.innerHTML+=` ${helpTextIcon}`;newLabel.innerHTML+=` ${helpTextIcon}`}if(dd.querySelector(":required")&&label.getAttribute("data-no-asterisk")===null&&!label.querySelector("span.required")){const text=label.getAttribute("data-asterisk-text")||"This field is required.";label.innerHTML+=` *`;newLabel.innerHTML+=` *`}if(!dd.querySelector("label"))dd.append(newLabel)} -// removes old div that a radio or checkbox may have been added to -if(dd.parentElement.nodeName==="DIV")dd.parentElement.remove();const div=document.createElement("div");div.append(label.closest("dt"),dd);dl.append(div)}else{newLabel.setAttribute("for",input.id);newLabel.innerHTML=label.innerHTML;if(input.hasAttribute("title")&&label.getAttribute("data-show-help-icon")!==null&&!label.querySelector("span.help")){const text=input.getAttribute("title");newLabel.innerHTML+=` ${helpTextIcon}`}if(input.hasAttribute("required")&&label.getAttribute("data-no-asterisk")===null&&!label.querySelector("span.required")){const text=label.getAttribute("data-asterisk-text")||"This field is required.";newLabel.innerHTML+=` *`}label.setAttribute("hidden","hidden");insertAfter(newLabel,input)} -// #endregion -// #region keyboard shortcuts -if(input.getAttribute("data-focus-key")!==null){function handleKeyboardShortcut(){const os=getOS(); +const inputs=Array.from(form.querySelectorAll("input, textarea, select"));for(const input of inputs){enhanceInput(input,form); +// handle keyboard shortcuts +if(input.getAttribute("data-focus-key")!==null){const shortcut=createKeyboardShortcut(input,keyboardShortcuts);keyboardShortcuts.push(shortcut)}}} +// prevents multiple listeners +document.removeEventListener("keydown",handleUndoRedo);document.addEventListener("keydown",handleUndoRedo); +// monitor changes to the DOM and enhance new semanticForms forms that get added +if(!window.semanticFormsObserver){window.semanticFormsObserver=new window.MutationObserver(mutations=>{let stop=false;for(const mutation of mutations){for(const node of mutation.addedNodes)if(node.nodeName==="FORM"||node?.querySelector?.("form")){semanticForms();stop=true}if(stop)break}});window.semanticFormsObserver.observe(document.body,{attributes:false,childList:true,characterData:false,subtree:true})}semanticForms.reinitialize=form=>{form.classList.remove("semanticFormsActive");semanticForms()}};module.exports=semanticForms +/***/}, +/***/497: +/***/(module,__unused_webpack_exports,__webpack_require__)=>{const{getOS,insertAfter}=__webpack_require__(584);const specialCharMap={Minus:"-",Equal:"=",BracketLeft:"[",BracketRight:"]",Backslash:"\\",Semicolon:";",Quote:"'",Comma:",",Period:".",Slash:"/",Backquote:"`"};const shiftSpecialCharMap={1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")",Minus:"_",Equal:"+",BracketLeft:"{",BracketRight:"}",Backslash:"|",Semicolon:":",Quote:'"',Comma:"<",Period:">",Slash:"?",Backquote:"~"}; +// handles keyboard shortcut events +const shortcutListener=(e,shortcuts)=>{ +// search for matching shortcut from cached shortcut configs +const shortcut=shortcuts.find(shortcut=>{let matchesKey=false;if(e.altKey&&!e.shiftKey) +// mac adjusts the key value if altKey is pressed +matchesKey="Key"+shortcut.key.toUpperCase()===e.code||"Digit"+shortcut.key.toUpperCase()===e.code||shortcut.key===e.key||specialCharMap[e.code]===shortcut.key;else if(e.shiftKey){ +// check shift special character map +const code=e.code.replace(/Key|Digit/,"");matchesKey=(shiftSpecialCharMap[code]||shiftSpecialCharMap[e.key])&&(shiftSpecialCharMap[code]===shortcut.key||shiftSpecialCharMap[e.key]===shortcut.key)}else matchesKey=shortcut.key.toUpperCase()===e.key.toUpperCase();if(!matchesKey)return false;let matchesModifier;if(shortcut.modifier){if(shortcut.modifier===shortcut.defaultModifier)matchesModifier=shortcut.os==="windows"||shortcut.os==="linux"?e.ctrlKey:e.metaKey;if(shortcut.modifier==="meta")matchesModifier=e.metaKey;if(shortcut.modifier==="alt")matchesModifier=e.altKey;if(shortcut.modifier==="ctrl")matchesModifier=e.ctrlKey}return matchesModifier});if(shortcut){e.preventDefault();shortcut.input.focus()}};const createKeyboardShortcut=(input,shortcuts)=>{const os=getOS(); // this is the custom keyword for meta on linux/mac, ctrl on windows const defaultModifier="metactrl"; // get focus key value @@ -40,43 +40,69 @@ const recognizedModifiers=["ctrl","alt","opt","meta","cmd",defaultModifier];if(! // retrieve modifier symbol if(["alt","opt"].includes(modifierKey))modifierSymbol=os==="mac"?"⌥":"⎇";else if(["meta","win","cmd"].includes(modifierKey)||modifierKey===defaultModifier&&os==="mac")if(os==="mac")modifierSymbol="⌘";else if(os==="linux")modifierSymbol="◆";else modifierSymbol="⊞";else if(modifierKey==="ctrl"||modifierKey===defaultModifier&&(os==="windows"||os==="linux"))if(os==="mac")modifierSymbol="⌃";else modifierSymbol="Ctrl"; // add the shortcut to the cached array, if not a duplicate -if(keyboardShortcuts.some(shortcut=>shortcut.key===focusKey&&shortcut.modifier===modifierKey))console.error(`Duplicate keyboard shortcut "${modifierKey} + ${focusKey}" detected. Only the first input will be focusable using this keyboard shortcut.`,input);else keyboardShortcuts.push({key:focusKey,modifier:modifierKey,input,os,defaultModifier}); +if(shortcuts.some(shortcut=>shortcut.key===focusKey&&shortcut.modifier===modifierKey))console.error(`Duplicate keyboard shortcut "${modifierKey} + ${focusKey}" detected. Only the first input will be focusable using this keyboard shortcut.`,input); // set the shortcut indicator/title if(input.nodeName==="TEXTAREA"||input.type==="text"||input.type==="number"){ // create focus indicator for valid inputs -const indicator=document.createElement("span");indicator.classList.add("focus-key");indicator.innerHTML=`${modifierSymbol} ${focusKey.toUpperCase()}`;insertAfter(indicator,newLabel)}else +const indicator=document.createElement("span");indicator.classList.add("focus-key");indicator.innerHTML=`${modifierSymbol} ${focusKey.toUpperCase()}`;const label=input.nextSibling;insertAfter(indicator,label)}else // update the input title -if(input.getAttribute("title"))input.setAttribute("title",input.getAttribute("title")+` (${modifierSymbol} + ${focusKey})`);else input.setAttribute("title",`Focus with ${modifierSymbol} + ${focusKey}`)} -// placed in a function so that it may exit while still completing other semantic-form enhancements -handleKeyboardShortcut()} +if(input.getAttribute("title"))input.setAttribute("title",input.getAttribute("title")+` (${modifierSymbol} + ${focusKey})`);else input.setAttribute("title",`Focus with ${modifierSymbol} + ${focusKey}`);return{key:focusKey,modifier:modifierKey,input,os,defaultModifier}};module.exports={shortcutListener,createKeyboardShortcut} +/***/}, +/***/584: +/***/module=>{ +/** + * Uses the navigator to best determine the clients operating system. + * @returns Operating system string (`mac`, `windows`, `linux`) + */ +const getOS=()=>{const userAgent=window.navigator.userAgent;const platform=window.navigator.platform;let os=null;if(platform.includes("Win"))os="windows";else if(platform.includes("Mac")||/iPhone|iPad|iPod/.test(userAgent))os="mac";else if(platform.includes("Linux")||/Android/.test(userAgent))os="linux";return os} +/** + * Places an element immediately after another element + * @param {Object} newNode element being placed after the reference node + * @param {*} referenceNode element to be used as reference for new node + */;const insertAfter=(newNode,referenceNode)=>{if(referenceNode.nextSibling)referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling);else referenceNode.parentNode.appendChild(newNode)};module.exports={getOS,insertAfter} +/***/}, +/***/866: +/***/(module,__unused_webpack_exports,__webpack_require__)=>{const{insertAfter}=__webpack_require__(584);const icons={passwordShow:'',passwordHide:'',helpIcon:''};const lookups={nodeName:["TEXTAREA","SELECT"],inputType:["checkbox","color","date","datetime-local","email","file","image","month","number","password","radio","range","search","tel","text","time","url","week"]};let lastFocusedInput;let lastClearFieldPressed;const enhanceInput=(input,form)=>{ +// ignore input if it has previously been formatted +if(input.classList.contains("semanticform")||!input.id)return;const type=input.getAttribute("type");if(!lookups.nodeName.includes(input.nodeName)&&!lookups.inputType.includes(type))return; +// recursively find
element +let dl=input.parentNode;while(dl&&dl.nodeName!=="DL")dl=dl.parentNode;if(!dl)return;if(!dl.classList.contains("floatLabelForm"))dl.classList.add("floatLabelForm");const label=input.parentNode.parentNode.id&&(type==="checkbox"||type==="radio")?document.querySelector("label[data-for="+input.parentNode.parentNode.id.replace(/\./g,"\\.")+"]"):document.querySelector("label[for="+input.id.replace(/\./g,"\\.")+"]");if(!label)console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) without a properly associated label. Make sure there is a label for it and the label has a matching "for" attribute.`);input.classList.add("semanticform"); +// #region create labels +const newLabel=document.createElement("label");newLabel.className="floatLabelFormAnimatedLabel";if(type==="checkbox"||type==="radio"){ +// recursively find
element +let dd=input.parentNode;while(dd&&dd.nodeName!=="DD")dd=dd.parentNode;if(!dd){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that is not inside a
element.`);return}if(dd.firstChild.nodeName!=="LABEL"){if(type==="checkbox"&&input.parentNode.nodeName==="DD"){newLabel.setAttribute("for",input.id);input.parentNode.classList.add("singleCheckbox");newLabel.className="";label.setAttribute("hidden","hidden");insertAfter(newLabel,input)}if(type==="radio"&&input.parentNode.nodeName==="DD"){newLabel.setAttribute("for",input.id);input.parentNode.classList.add("singleRadio");newLabel.className="";label.setAttribute("hidden","hidden");insertAfter(newLabel,input)}newLabel.innerHTML=label.innerHTML;if(label.hasAttribute("title")&&label.getAttribute("data-show-help-icon")!==null&&!label.querySelector("span.help")){const text=label.getAttribute("title");label.innerHTML+=` ${icons.helpIcon}`;newLabel.innerHTML+=` ${icons.helpIcon}`}if(dd.querySelector(":required")&&label.getAttribute("data-no-asterisk")===null&&!label.querySelector("span.required")){const text=label.getAttribute("data-asterisk-text")||"This field is required.";label.innerHTML+=` *`;newLabel.innerHTML+=` *`}if(!dd.querySelector("label"))dd.append(newLabel)} +// removes old div that a radio or checkbox may have been added to +if(dd.parentElement.nodeName==="DIV")dd.parentElement.remove();const div=document.createElement("div");div.append(label.closest("dt"),dd);dl.append(div)}else{newLabel.setAttribute("for",input.id);newLabel.innerHTML=label.innerHTML;if(input.hasAttribute("title")&&label.getAttribute("data-show-help-icon")!==null&&!label.querySelector("span.help")){const text=input.getAttribute("title");newLabel.innerHTML+=` ${icons.helpIcon}`}if(input.hasAttribute("required")&&label.getAttribute("data-no-asterisk")===null&&!label.querySelector("span.required")){const text=label.getAttribute("data-asterisk-text")||"This field is required.";newLabel.innerHTML+=` *`}label.setAttribute("hidden","hidden");insertAfter(newLabel,input)} // #endregion // #region standard inputs +const isWrapped=input.closest("dd").parentElement.nodeName==="DIV"; // check for auto-grow attribute on textareas if(input.getAttribute("data-auto-grow")!==null){ // progressively enhance inputs into textareas if(input.nodeName==="INPUT"&&input.type==="text"){const newInput=document.createElement("textarea");newInput.id=input.id;newInput.class=input.class;newInput.innerText=input.value;newInput.setAttribute("data-auto-grow","");input.replaceWith(newInput);input=newInput}if(input.nodeName==="TEXTAREA") // when pressing enter while this input is focused, we want to submit -input.addEventListener("keypress",e=>{if(e.key!=="Enter"||e.key==="Enter"&&e.shiftKey)return;e.preventDefault();form.requestSubmit()})}if(type!=="checkbox"&&type!=="radio"){if(!input.getAttribute("placeholder"))input.setAttribute("placeholder"," ");const div=document.createElement("div");const dt=label.closest("dt");const dd=input.closest("dd");if(!dt){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that does not have a corresponding
element.`);continue}if(!dd){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that does not have a corresponding
element.`);continue} -// #region input clear button +input.addEventListener("keypress",e=>{if(e.key!=="Enter"||e.key==="Enter"&&e.shiftKey)return;e.preventDefault();form.requestSubmit()})}if(type!=="checkbox"&&type!=="radio"){if(!input.getAttribute("placeholder"))input.setAttribute("placeholder"," ");const div=isWrapped?input.closest("dd").parentElement:document.createElement("div");const dt=label.closest("dt");const dd=input.closest("dd");if(!dt||!dd){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that does not have a corresponding ${!dt?"
":"
"} element.`);return} +// input clear button if(input.nodeName!=="SELECT"&&type!=="range"){const clearBtn=document.createElement("button");clearBtn.type="button";clearBtn.title=input.getAttribute("data-clear-field-text")||"Clear field";clearBtn.ariaLabel=input.getAttribute("data-clear-field-text")||"Clear field";clearBtn.tabIndex=-1;clearBtn.innerHTML='';clearBtn.classList.add("clear");clearBtn.id=`semanticFormsClearButton_${input.id}`;clearBtn.addEventListener("click",()=>{input.previousValue=input.value;input.value="";input.focus();lastClearFieldPressed=input.id; // used for any other updates required by various inputs input.dispatchEvent(new Event("input",{bubbles:true}))});insertAfter(clearBtn,dd.querySelector("label"))}input.addEventListener("focus",event=>{if(event.target.nodeName==="INPUT")lastFocusedInput=event.target}); -// #endregion -// check for colspan- utility class +// check for colspan- utility class on dd, and move to div if(/colspan-/.test(dd.className)){const match=dd.className.match(/colspan-([0-9]|full)/)[0];dd.classList.remove(match);div.classList.add(match)} // check for max-content attribute // this may be removed once fully supported in Firefox and Safari: https://caniuse.com/wf-field-sizing -if(input.getAttribute("data-max-content")!==null)if(!("fieldSizing"in document.createElement("input").style)){const adjustWidth=()=>{const value=input.value!==""?input.value:input.placeholder;const width=value.length*8+40;input.style.width=width+"px";input.style.maxWidth="100%";div.style.width=width+"px"};adjustWidth();input.addEventListener("input",adjustWidth)}div.append(dt,dd);dl.append(div); +if(input.getAttribute("data-max-content")!==null)if(!("fieldSizing"in document.createElement("input").style)){const adjustWidth=()=>{const value=input.value!==""?input.value:input.placeholder;const width=value.length*8+40;input.style.width=width+"px";input.style.maxWidth="100%";div.style.width=width+"px"};adjustWidth();input.addEventListener("input",adjustWidth)} +// if the user did not wrap the input in a div, do it for them +if(!isWrapped){div.append(dt,dd);dl.append(div); // determine visibility of newly created
-if(dt.style.display==="none"&&dd.style.display==="none")div.style.display="none"} +if(dt.style.display==="none"&&dd.style.display==="none")div.style.display="none"}} // #endregion // handle file input clear btn, cannot be handled with CSS if(type==="file"){const clearBtn=input.parentElement.querySelector(".clear");input.addEventListener("input",event=>{clearBtn.style.display=event.target.files.length?"flex":"none"});clearBtn.addEventListener("click",()=>{clearBtn.style.display="none"})} // handle range inputs with a class to display the value +// TODO: should this be a data attribute instead? if(type==="range"&&input.classList.contains("displayValue")){const label=input.parentNode.parentNode.querySelector("dd label");label.innerHTML+=`: ${input.value}`;input.addEventListener("input",event=>{const output=event.target.parentNode.parentNode.querySelector("output");output.innerHTML=event.target.value})} -// #region show password button -if(type==="password"&&input.getAttribute("data-no-reveal")===null){const showBtn=document.createElement("button");showBtn.type="button";showBtn.title=input.getAttribute("data-show-password-text")||"Show password";showBtn.ariaLabel=input.getAttribute("data-show-password-text")||"Show password";showBtn.tabIndex=-1;showBtn.innerHTML=passwordShow;showBtn.classList.add("show");showBtn.id=`semanticFormsShowButton_${input.id}`;const dd=input.closest("dd");if(!dd){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that is not inside a
element.`);continue}showBtn.addEventListener("click",()=>{if(input.type==="password"){showBtn.innerHTML=passwordHide;showBtn.title=input.getAttribute("data-hide-password-text")||"Hide password";showBtn.ariaLabel=input.getAttribute("data-hide-password-text")||"Hide password";input.type="text"}else{showBtn.innerHTML=passwordShow;showBtn.title=input.getAttribute("data-show-password-text")||"Show password";showBtn.ariaLabel=input.getAttribute("data-show-password-text")||"Show password";input.type="password"}input.focus()});insertAfter(showBtn,dd.querySelector("label"))} -// #endregion +// show password button +if(type==="password"&&input.getAttribute("data-no-reveal")===null){const showBtn=document.createElement("button");showBtn.type="button";showBtn.title=input.getAttribute("data-show-password-text")||"Show password";showBtn.ariaLabel=input.getAttribute("data-show-password-text")||"Show password";showBtn.tabIndex=-1;showBtn.innerHTML=icons.passwordShow;showBtn.classList.add("show");showBtn.id=`semanticFormsShowButton_${input.id}`;const dd=input.closest("dd");if(!dd){console.error(`semantic-forms: Found an input (${input.id||input.getAttribute("name")}) that is not inside a
element.`);return}showBtn.addEventListener("click",()=>{if(input.type==="password"){showBtn.innerHTML=icons.passwordHide;showBtn.title=input.getAttribute("data-hide-password-text")||"Hide password";showBtn.ariaLabel=input.getAttribute("data-hide-password-text")||"Hide password";input.type="text"}else{showBtn.innerHTML=icons.passwordShow;showBtn.title=input.getAttribute("data-show-password-text")||"Show password";showBtn.ariaLabel=input.getAttribute("data-show-password-text")||"Show password";input.type="password"}input.focus()});insertAfter(showBtn,dd.querySelector("label"))} // add listener to shift clear button when scrollbar present if(input.nodeName==="TEXTAREA"){if(input.getAttribute("data-disable-autosize")===null){ // add auto-sizing @@ -101,28 +127,17 @@ if(maxRows)input.setAttribute("rows",""+Math.min(rows,Number(maxRows)));else inp input.dispatchEvent(new Event("input",{bubbles:true}))} // progressively enhance textarea for Firefox and Safari // this may be removed once fully supported in Firefox and Safari: https://caniuse.com/wf-field-sizing -if(input.getAttribute("data-auto-grow")!==null){const adjustHeight=()=>{if(input.value.length){const borderWidth=parseInt(window.getComputedStyle(input).getPropertyValue("border-width"));input.style.height=input.scrollHeight+borderWidth*2+"px"}else input.style.height=window.getComputedStyle(form).getPropertyValue("--semanticFormsInputHeight")}; +if(input.getAttribute("data-auto-grow")!==null)if(!("fieldSizing"in document.createElement("input").style)){const adjustHeight=()=>{if(input.value.length){const borderWidth=parseInt(window.getComputedStyle(input).getPropertyValue("border-width"));input.style.height=input.scrollHeight+borderWidth*2+"px"}else input.style.height=window.getComputedStyle(form).getPropertyValue("--semanticFormsInputHeight")}; // set initial height to semantic-forms CSS variable input.style.height=window.getComputedStyle(form).getPropertyValue("--semanticFormsInputHeight");input.addEventListener("input",adjustHeight)} // shifts the clear button to the right if a scrollbar is present -const shiftClearBtn=()=>{const clearBtn=input.parentElement?.querySelector("button.clear");if(clearBtn)clearBtn.style.marginRight=input.clientHeight{const clearBtn=input.parentElement?.querySelector("button.clear");if(clearBtn)clearBtn.style.marginRight=input.clientHeight{ // handle undo/redo -let lastFocusedInput;let lastClearFieldPressed;document.addEventListener("keydown",event=>{if((event.ctrlKey||event.metaKey)&&event.key==="z"&&!event.shiftKey){ +if((event.ctrlKey||event.metaKey)&&event.key==="z"&&!event.shiftKey){ // undo clearing a field -if(lastFocusedInput)if(lastFocusedInput?.parentNode?.querySelector("button.clear").id===`semanticFormsClearButton_${lastClearFieldPressed}`||lastFocusedInput?.parentNode?.querySelector("button.clear").name===`semanticFormsClearButton_${lastClearFieldPressed}`)if(lastFocusedInput.previousValue){lastFocusedInput.redoValue=lastFocusedInput.value;lastFocusedInput.value=lastFocusedInput.previousValue}}else if(event.ctrlKey&&event.key==="y"||event.metaKey&&event.shiftKey&&event.key==="z") +if(lastFocusedInput)if(lastFocusedInput?.parentNode?.querySelector("button.clear").id===`semanticFormsClearButton_${lastClearFieldPressed}`||lastFocusedInput?.parentNode?.querySelector("button.clear").name===`semanticFormsClearButton_${lastClearFieldPressed}`)if(lastFocusedInput.previousValue){console.log("update redo value",lastFocusedInput.value);lastFocusedInput.redoValue=lastFocusedInput.value;lastFocusedInput.value=lastFocusedInput.previousValue}}else if(event.ctrlKey&&event.key==="y"||event.metaKey&&event.shiftKey&&event.key==="z") // redo clearing a field -if(lastFocusedInput)if(lastFocusedInput?.parentNode?.querySelector("button.clear").id===`semanticFormsClearButton_${lastClearFieldPressed}`||lastFocusedInput?.parentNode?.querySelector("button.clear").name===`semanticFormsClearButton_${lastClearFieldPressed}`)if(lastFocusedInput.redoValue){lastFocusedInput.previousValue=lastFocusedInput.value;lastFocusedInput.value=lastFocusedInput.redoValue}}); -// monitor changes to the DOM and enhance new semanticForms forms that get added -if(!window.semanticFormsObserver){window.semanticFormsObserver=new window.MutationObserver(mutations=>{let stop=false;for(const mutation of mutations){for(const node of mutation.addedNodes)if(node.nodeName==="FORM"||node?.querySelector?.("form")){semanticForms();stop=true}if(stop)break}});window.semanticFormsObserver.observe(document.body,{attributes:false,childList:true,characterData:false,subtree:true})}semanticForms.reinitialize=form=>{form.classList.remove("semanticFormsActive");semanticForms()}};module.exports=semanticForms +if(lastFocusedInput)if(lastFocusedInput?.parentNode?.querySelector("button.clear").id===`semanticFormsClearButton_${lastClearFieldPressed}`||lastFocusedInput?.parentNode?.querySelector("button.clear").name===`semanticFormsClearButton_${lastClearFieldPressed}`)if(lastFocusedInput.redoValue){lastFocusedInput.previousValue=lastFocusedInput.value;lastFocusedInput.value=lastFocusedInput.redoValue}};module.exports={enhanceInput,handleUndoRedo} /***/} /******/}; /************************************************************************/ diff --git a/docs/package-lock.json b/docs/package-lock.json index dc737c9..90adb3c 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -26,7 +26,8 @@ } }, "..": { - "version": "5.2.2", + "name": "semantic-forms", + "version": "5.3.0", "license": "CC-BY-4.0", "devDependencies": { "@jsdevtools/coverage-istanbul-loader": "3.0.5", @@ -134,6 +135,7 @@ "integrity": "sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -251,6 +253,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -273,6 +276,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -1284,6 +1288,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1327,6 +1332,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -1829,6 +1835,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", @@ -2907,9 +2914,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.248", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.248.tgz", - "integrity": "sha512-zsur2yunphlyAO4gIubdJEXCK6KOVvtpiuDfCIqbM9FjcnMYiyn0ICa3hWfPr0nc41zcLWobgy1iL7VvoOyA2Q==", + "version": "1.5.249", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.249.tgz", + "integrity": "sha512-5vcfL3BBe++qZ5kuFhD/p8WOM1N9m3nwvJPULJx+4xf2usSlZFJ0qoNYO2fOX4hi3ocuDcmDobtA+5SFr4OmBg==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -3253,6 +3260,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3460,6 +3468,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -3527,6 +3536,7 @@ "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "builtins": "^5.0.1", "eslint-plugin-es": "^4.1.0", @@ -3553,6 +3563,7 @@ "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3569,6 +3580,7 @@ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -7674,9 +7686,9 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", @@ -7857,6 +7869,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -7940,6 +7953,7 @@ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -9589,6 +9603,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", diff --git a/docs/statics/pages/fullDemo.html b/docs/statics/pages/fullDemo.html index aaf4e87..9453c1e 100644 --- a/docs/statics/pages/fullDemo.html +++ b/docs/statics/pages/fullDemo.html @@ -23,6 +23,11 @@ margin-block: 0.67em; font-size: 2em; } + section { + display: flex; + flex-direction: column; + gap: 5px; + } @@ -31,1223 +36,1619 @@

Semantic Forms

A pattern library of forms based on semantic HTML enhanced with a modern UX.

-

High flow (JavaScript enabled) styling

- -
-
-
-
- -
-
- -
-
- -
-
- -

Password should be at least 8 characters long.

-
- -
-
- -

Password should be at least 8 characters long.

-
- -
-
- -

Password should be at least 8 characters long.

-
- -
-
- - -
-
- -
-
-
-
- -
-
-
- -
-
- -
-
- -
- Fieldset legend - -

Inputs

-
-
-
- -
-
- -
-
- -
-
+
+ Table of Contents -
-
+ +
-
-
+

High flow (JavaScript enabled) styling

-
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
- - + +

Password should be at least 8 characters long.

+
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
+
+
- - - + +

Password should be at least 8 characters long.

+
-
+
+
- - + +

Password should be at least 8 characters long.

+
-
-
- -
-
-
- -

Selects

-
-
+
+
- - + +
+
+
-
-
- -
+
+
+
+
+
+
-
+
+
+
+
+
+ +
+
- + + +
+
+
-
-
-
+
+ Fieldset legend -

Checkboxes

+

Inputs

-
-
-
    -
  • -
  • -
  • -
-
- -
-
-
    -
  • -
  • -
  • -
-
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ + + +
+
-
-
-
    -
  • -
  • -
  • -
-
+
+
+
+
-
-
-
    -
  • - - -
  • -
  • - - -
  • -
  • - -
  • -
- -
+
+
+
+
+

Selects

-
-
- -
-
- -
-
- -
-
- - -
-
- +
+
+
+ + +
+
-

Radios

-
-
-
-
    -
  • -
  • -
  • -
-
+
+
+
+ +
+
-
-
-
    -
  • -
  • -
  • -
-
+
+
+
+ +
+
-
-
-
    -
  • -
  • -
  • -
-
+
+
+
+ + +
+
-
-
-
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
- -
+
+
+
+
-
-
-
- -
-
+

Checkboxes

+
+
+
+
+
+
    +
  • +
  • +
  • +
+
+
+ +
+
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+
+ +
+
+
+
    +
  • +
  • +
  • +
+
+
+ +
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + +
  • +
+ +
+
+
-
-
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
+
+
+
-
-
- - -
-
+

Radios

+
+
+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+
+
+
    +
  • +
  • +
  • +
+
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
-

Other

+

Other

-
-
+
+
+
+
-
-
- - -
+
+
+
+ + +
+
-
-
- - -
+
+
+
+ + +
+
-
-
- - -
+
+
+
+ + +
+
-
-
- -
+
+
+
+
-
-
- -
+
+
+
+
-

Keyboard shortcuts

-
-
-
- -
-
- -
-
- -
-
- -
- -
-
- -
-
- - -
- -
-
- - -
- -
-
+

Alignment classes

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+

Keyboard shortcuts

+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
+
-
-
+
+
+
+ + +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
-

Tables

- -

Table with inputs and buttons

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table Title
Column 1Column 2Column 3
1 - - - -
  • -
  • Link button 1
  • -
    -
    2 - - - -
  • -
  • Link button 2
  • -
    -
    3 - - - -
  • -
  • Link button 3
  • -
    -
    - -

    Table using colgroups to define column width

    - - - - - - - - - - - - - - - - - - - - - - - -
    Table Title
    Column 1Column 2Column 3
    20%50%30%
    - -

    Nested fieldsets

    - +

    Tables

    +
    +

    Table with inputs and buttons

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Title
    Column 1Column 2Column 3
    1 + + + +
  • +
  • Link button 1
  • +
    +
    2 + + + +
  • +
  • Link button 2
  • +
    +
    3 + + + +
  • +
  • Link button 3
  • +
    +
    +

    Table using colgroups to define column width

    + + + + + + + + + + + + + + + + + + + + + + + +
    Table Title
    Column 1Column 2Column 3
    20%50%30%
    +
    + +

    Nested fieldsets

    Fieldset 1
    -
    -
    - -

    Here is some subtext.

    -
    +
    +
    +
    + +

    Here is some subtext.

    +
    +
    -
    -
    - -

    Here's some small subtext.

    -
    +
    +
    +
    + +

    Here's some small subtext.

    +
    +
    -
    -
    - -

    Here's some bold subtext.

    -
    +
    +
    +
    + +

    Here's some bold subtext.

    +
    +
    -
    -
    - -

    Here is some subtext.

    -

    Here is some more subtext.

    -
    +
    +
    +
    + +

    Here is some subtext.

    +

    Here is some more subtext.

    +
    +
    Fieldset 2
    -
    -
    - -
    +
    +
    +
    + +
    +
    -
    -
    - -
    +
    +
    +
    +
    -
    -
    - -
    +
    +
    +
    + +
    +
    Fieldset 3
    -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Detail elements

    Detail element
    -
    -
    - -
    -
    - -
    -
    - -
    -
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    Another detail element with a nested fieldset
    -
    -
    +
    +
    +
    +
    Nested fieldset
    -
    -
    +
    +
    +
    +
    - - - Button link - -

    Flexbox button layout pattern with two submit buttons:

    - -
  • -
  • -
    - -

    Flexbox button layout pattern with three submit buttons:

    - -
  • -
  • -
  • -
    -
    - -
    - Colspan classes - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - colspan-1 - +

    Buttons

    +
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - colspan-2 - -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - colspan-3 - -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    -
    - -
    - colspan-full - + + + + Button link +

    Flexbox button layout pattern with two submit buttons:

    + +
  • +
  • +
    +

    Flexbox button layout pattern with three submit buttons:

    + +
  • +
  • +
  • +
    + + +

    Colspan classes

    +
    -
    -
    - -
    -
    - -
    -
    - -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    - -
    - P tag elements +
    + colspan-1 +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + colspan-2 +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + colspan-3 +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + colspan-full +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + -

    - - -

    -

    - - -

    -

    - - -

    -

    - -

    -

    - Some regular text with other elements inside of it -

    +

    P tag elements

    +
    +

    + + +

    +

    + + +

    +

    + + +

    +

    + +

    +

    + Some regular text with other elements inside of it +

    +
    - -

    Non-form related HTML elements

    -

    This is some regular HTML that should not be affected by any semantic forms styles

    -
    This is a div
    -
    This is a block quote
    - A link to the semantic forms repo - -
      -
    • unordered list 1
    • -
    • unordered list 2
    • -
    • unordered list 3
    • -
    -
      -
    1. ordered list 1
    2. -
    3. ordered list 2
    4. -
    5. ordered list 3
    6. -
    - -
  • menu list 1
  • -
  • menu list 2
  • -
  • menu list 3
  • -
    -
    -
    description list title
    -
    description list value
    -
    -

    Table with semanticForms class

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Table Title
    Column 1Column 2Column 3
    1 - - - -
  • -
  • Link button 1
  • -
    -
    2 - - - -
  • -
  • Link button 2
  • -
    -
    3 - - - -
  • -
  • Link button 3
  • -
    -
    - -

    Table with a form in a cell

    - - - - - - - - - - - - - - + + +
    Table Title
    Column 1Column 2
    Some text -
    +

    Semantic form tables

    + +
    +

    Table with semanticForms class

    + + + + + + + + + + + + + + + + + + + + + + + + + + - - -
    Table Title
    Column 1Column 2Column 3
    1 + + + +
  • +
  • Link button 1
  • +
    +
    2 + + + +
  • +
  • Link button 2
  • +
    +
    3 + + -
  • +
  • +
  • Link button 3
  • - -
    - -

    Unstyled table

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Table Title
    Column 1Column 2Column 3
    1Aa
    2Bb
    3Cc
    +
    +

    Table with a form in a cell

    + + + + + + + + + + + + + + + + +
    Table Title
    Column 1Column 2
    Some text +
    + +
  • +
    +
    +
    +

    Unstyled table

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Title
    Column 1Column 2Column 3
    1Aa
    2Bb
    3Cc
    +
    -

    Low flow (JavaScript disabled) styling

    +

    Low flow (JavaScript disabled) styling

    Adding the lowFlow class to the form element removes all JS enhancements.

    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -

    Password should be at least 8 characters long.

    -
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + +

    Password should be at least 8 characters long.

    +
    +
    -
    -
    +
    +
    +
    +
    Fieldset legend -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - -
    - -
    -
    -
      -
    • -
    • -
    • -
    -
    - -
    -
    - -
    -
    -
      -
    • -
    • -
    • -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    +

    Inputs

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + + +
    +
    -
    -
    +
    +
    +
    +
    -
    -
    +
    +
    +
    +
    -
    -
    +
    +
    +
    +
    -
    -
    - - -
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
      +
    • +
    • +
    • +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
      +
    • +
    • +
    • +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + + +
    +
    +

    Nested fieldsets

    Nested fieldset
    -
    -
    - -

    Here is some subtext.

    -
    +
    +
    +
    + +

    Here is some subtext.

    +
    +
    -
    -
    - -

    Here's some small subtext.

    -
    +
    +
    +
    + +

    Here's some small subtext.

    +
    +
    -
    -
    - -

    Here's some bold subtext.

    -
    +
    +
    +
    + +

    Here's some bold subtext.

    +
    +
    -
    -
    - -

    Here is some subtext.

    -

    Here is some more subtext.

    -
    +
    +
    +
    + +

    Here is some subtext.

    +

    Here is some more subtext.

    +
    +
    Another nested fieldset
    -
    -
    +
    +
    +
    +
    -
    -
    - -
    +
    +
    +
    + +
    +
    -
    -
    - -
    +
    +
    +
    + +
    +
    +

    Detail elements

    Details summary
    -
    -
    - -
    -
    - -
    -
    - -
    -
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    Another details element
    -
    -
    +
    +
    +
    +
    -
    - Colspan classes +

    Colspan classes

    -
    +
    +
    -
    +
    +
    + +
    -
    +
    +
    + +
    -
    +
    +
    + +
    -
    +
    +
    + +
    -
    +
    +
    + +
    -
    +
    +
    + +
    -
    +
    +
    + +
    -
    -
    +
    +
    + -
    - colspan-1 +
    + colspan-1 -
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    + + +
    -
    - colspan-2 +
    + colspan-2 -
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    + + +
    -
    - colspan-3 +
    + colspan-3 -
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    + + +
    -
    - colspan-full +
    + colspan-full -
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    + +
    -
    - P tag elements +

    P tag elements

    -

    - - -

    -

    - - -

    -

    - - -

    -

    - -

    -

    - Some regular text with other elements inside of it -

    -
    +

    + + +

    +

    + + +

    +

    + + +

    +

    + +

    +

    + Some regular text with other elements inside of it +

    +

    Buttons

    Button link @@ -1265,12 +1666,15 @@

    Low flow (JavaScript disabled) styling

  • + -

    Non-form related HTML elements

    + +

    This is some regular HTML that should not be affected by any semantic forms styles

    This is a div
    This is a block quote
    A link to the semantic forms repo +