UNPKG

@natlibfi/melinda-ui-commons

Version:

Common modules for Melinda UI applications

272 lines (219 loc) 7.98 kB
/* ---------------------------------------------------------------------------- */ /* INPUT RADIO */ /* */ /* Basic label-wrapper and input-wrapper is used as a starting point */ /* to create styles for input radio. */ /* Many style definitions are shared with input checkbox. */ /* ---------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------- */ /* Default M size radio */ .form-field-container.radio { display: flex; flex-direction: row; gap: 12px; align-items: center; } .form-field-container.radio .input-wrapper, .form-field-container.radio .label-wrapper, .form-field-container.radio .input-wrapper input, .form-field-container.radio .input-wrapper span, .form-field-container.radio .label-wrapper label { display: flex; flex-basis: auto; } .form-field-container.radio .input-wrapper, .form-field-container.radio .input-wrapper input, .form-field-container.radio .input-wrapper span { cursor: pointer; } .form-field-container.radio .label-wrapper label { align-items: center; justify-content: center; } .form-field-container.radio .input-wrapper { border: none; padding-left: 0px; padding-right: 16px; overflow: visible; background-color: transparent; } /* Hiding the default radio */ .form-field-container.radio .input-wrapper input { display: none; } /* Custom radio */ .form-field-container.radio .input-wrapper span { border-width: 1px; border-style: solid; border-color: var(--color-blue-100); background-color: var(--color-primary-white); color: var(--color-primary-white); position: relative; height: 24px; width: 24px; padding: 0px; margin: 0px; border-radius: 50%; } .form-field-container.radio .input-wrapper>input[type="radio"]:checked+span:before { content: ''; position: absolute; background-color: var(--color-functional-blue); border-radius: 50%; height: 16px; width: 16px; } .form-field-container.radio:focus-within .input-wrapper { outline: none; border: none; } .form-field-container.radio:focus-within .input-wrapper span { outline-style: solid; outline-color: var(--color-functional-blue); border-color: var(--color-functional-blue); border-style: solid; border-width: 1px; outline-width: 2px; } .form-field-container.radio .outer-link a { text-decoration: underline dotted var(--color-functional-blue) 0.1rem; } .form-field-container.radio .outer-link a:hover { color: var(--color-primary-blue); text-decoration: underline solid var(--color-primary-blue) 0.1rem; } .form-field-container.radio:focus-within label a { outline: none; border: none; } /* ---------------------------------------------------------------------------- */ /* Small input radio specific styles */ .form-field-container.radio.small .input-wrapper { padding-right: 12px; } .form-field-container.radio.small .input-wrapper span { height: 20px; width: 20px; } .form-field-container.radio.small .input-wrapper>input[type="radio"]:checked+span:before { height: 14px; width: 14px; } .form-field-container.radio.small .input-wrapper>:not(button):last-child { padding-right: 0px; } /* ---------------------------------------------------------------------------- */ /* Input radio hover state */ .form-field-container.radio:hover .input-wrapper>input[type="radio"]+span { outline-color: var(--color-blue-100); outline-style: solid; outline-width: 1px; } .form-field-container.radio:hover .input-wrapper>input[type="radio"]:checked+span:before { background-color: var(--color-blue-100); outline-color: var(--color-blue-100); outline-style: solid; outline-width: 1px; } .form-field-container.radio .input-wrapper:hover { border: none; outline: none; } /* ---------------------------------------------------------------------------- */ /* Input radio disabled state */ /* form-field-container wrapper div should have attribute disabled="true" */ /* also the input element itself should be disabled */ .form-field-container.radio:focus-within[disabled=true] .input-wrapper { outline: none; } .form-field-container.radio[disabled=true] .input-wrapper { pointer-events: none; background-color: transparent; } .form-field-container.radio[disabled=true] .input-wrapper input[type] { pointer-events: none; background-color: var(--color-grey-20); } .form-field-container.radio[disabled=true] .input-wrapper span { color: var(--color-blue-80); border-color: var(--color-blue-60); background-color: var(--color-blue-20); } .form-field-container.radio[disabled=true] .input-wrapper>input[type="radio"]+span:before { color: white; background-color: var(--color-blue-60); outline: none; border-color: var(--color-blue-60); } .form-field-container.radio[disabled=true] label { color: var(--color-grey-80); font-weight: 300; } .form-field-container.radio[disabled=true]:hover .input-wrapper>input[type="radio"]+span { background-color: var(--color-blue-20); outline: none; border-color: var(--color-blue-60); } .form-field-container.radio[disabled=true]:hover .input-wrapper>input[type="radio"]:checked+span:before { color: white; background-color: var(--color-blue-60); outline: none; border-color: var(--color-blue-60); } /* ---------------------------------------------------------------------------- */ /* Inverse colored input radio */ .form-field-container.radio.inverse .input-wrapper span { border-color: var(--color-primary-white); border-width: 1px; background-color: transparent; color: var(--color-primary-white); } .form-field-container.radio.inverse .input-wrapper>input[type="radio"]:checked+span:before { background-color: var(--color-primary-white); color: var(--color-primary-blue); } .form-field-container.radio.inverse:hover .input-wrapper>input[type="radio"]:checked+span:before { background-color: var(--color-primary-white); color: var(--color-primary-blue); } /* ---------------------------------------------------------------------------- */ /* Inverse colored input radio hover state */ .form-field-container.radio.inverse:hover .input-wrapper>input[type="radio"]+span { outline-color: var(--color-primary-white); outline-style: solid; outline-width: 1px; } .form-field-container.radio.inverse:hover .input-wrapper>input[type="radio"]:checked+span:before { outline-color: var(--color-primary-white); outline-style: solid; outline-width: 1px; } /* ---------------------------------------------------------------------------- */ /* Inverse colored input radio disabled state */ .form-field-container.radio.inverse[disabled=true] .input-wrapper { pointer-events: none; } .form-field-container.radio.inverse[disabled=true] .input-wrapper input[type="radio"] { pointer-events: none; } .form-field-container.radio.inverse[disabled=true] .input-wrapper span { border-color: var(--color-blue-60); background-color: var(--color-blue-80); } .form-field-container.radio.inverse[disabled=true] .input-wrapper>input[type="radio"]:checked+span:before { background-color: var(--color-blue-60); } /* ---------------------------------------------------------------------------- */ /* Inverse colored input radio disabled hover state */ .form-field-container.radio.inverse[disabled=true]:hover .input-wrapper span { border-color: var(--color-blue-60); background-color: var(--color-blue-80); } .form-field-container.radio.inverse[disabled=true]:hover .input-wrapper>input[type="radio"]+span { outline: none; background-color: var(--color-blue-80); } .form-field-container.radio.inverse[disabled=true]:hover .input-wrapper>input[type="radio"]:checked+span:before { background-color: var(--color-blue-60); outline: none; }