.input { font-size: var(--font-size-base); font-family: var(--font-family-base); font-weight: var(--font-weight-bold); color: var(--brand-black); border: 1px solid var(--brand-grey-lighter); box-shadow: none; width: 100%; background: var(--brand-white); padding: calc(var(--spacer) / 3); margin: 0; border-radius: var(--border-radius); transition: 0.2s ease-out; min-height: 43px; min-width: 0; appearance: none; display: block; } .input:focus { border-color: var(--brand-grey); box-shadow: none; outline: 0; } .input::placeholder { font-family: var(--font-family-base); font-size: var(--font-size-base); color: var(--brand-grey-light); font-weight: var(--font-weight-base); transition: 0.2s ease-out; opacity: 0.7; } .input[readonly], .input[disabled] { background-color: var(--brand-grey-dimmed); color: var(--brand-grey-light); cursor: not-allowed; pointer-events: none; /* for hiding spin buttons in Firefox */ -moz-appearance: textfield; } .input[readonly]::-webkit-inner-spin-button, .input[disabled]::-webkit-inner-spin-button, .input[readonly]::-webkit-outer-spin-button, .input[disabled]::-webkit-outer-spin-button { display: none; } .select { composes: input; height: 43px; padding-right: 3rem; /* custom arrow */ background-image: linear-gradient( 45deg, transparent 50%, var(--brand-purple) 50% ), linear-gradient(135deg, var(--brand-grey) 50%, transparent 50%), linear-gradient( to right, var(--brand-grey-lighter) 1px, transparent 1px, transparent ); background-position: calc(100% - 18px) calc(1rem + 5px), calc(100% - 13px) calc(1rem + 5px), 100% 0; background-size: 5px 5px, 5px 5px, 2.5rem 3rem; background-repeat: no-repeat; } .select:focus { outline: 0; font-family: var(--font-family-base); } .radioGroup { margin-top: calc(var(--spacer) / 2); } .radioWrap { position: relative; } .radioLabel { margin: 0; padding: 0; font-weight: var(--font-weight-bold); font-size: var(--font-size-small); color: var(--brand-grey); padding-left: 0.5rem; } .radio, .checkbox { composes: input; position: relative; padding: 0; width: 18px; height: 18px; min-height: 0; display: inline-block; vertical-align: middle; margin-top: -2px; } .radio::after, .checkbox::after { content: ''; display: block; left: 0; top: 0; position: absolute; opacity: 0; transition: transform 0.3s ease-out, opacity 0.2s; } .radio:checked, .checkbox:checked { border-color: var(--brand-pink); background: var(--brand-pink); } .radio:focus, .checkbox:focus { box-shadow: 0 0 0 var(--brand-pink); } .radio:checked::after, .checkbox:checked::after { opacity: 1; } .radio { border-radius: 50%; } .radio::after { width: 16px; height: 16px; border-radius: 50%; background: var(--brand-white); transform: scale(0.7); } .checkbox::after { width: 6px; height: 9px; border: 2px solid var(--brand-white); border-top: 0; border-left: 0; left: 5px; top: 2px; transform: rotate(40deg); } .prefixGroup, .postfixGroup { display: inline-flex; align-items: center; } .prefixGroup input { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; } .postfixGroup input { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; } .prefix, .postfix { border: 1px solid var(--brand-grey-lighter); min-height: 43px; display: flex; align-items: center; padding-left: calc(var(--spacer) / 4); padding-right: calc(var(--spacer) / 4); color: var(--color-secondary); font-size: var(--font-size-small); transition: border 0.2s ease-out; white-space: nowrap; } .prefix { border-top-left-radius: var(--border-radius); border-bottom-left-radius: var(--border-radius); } .postfix { border-top-right-radius: var(--border-radius); border-bottom-right-radius: var(--border-radius); } .input:focus + .postfix { border-color: var(--brand-grey); } /* Size modifiers */ .small { font-size: var(--font-size-small); min-height: 34px; padding: calc(var(--spacer) / 4); } .small::placeholder { font-size: var(--font-size-small); } .prefix.small, .postfix.small { min-height: 34px; font-size: var(--font-size-mini); } .selectSmall { composes: small; height: 34px; padding-right: 2rem; /* custom arrow */ background-position: calc(100% - 14px) 1rem, calc(100% - 9px) 1rem, 100% 0; background-size: 5px 5px, 5px 5px, 2rem 3rem; }