cssformalize
Version:
CSSformalize is a groundbreaking CSS framework for effortless customization of native HTML forms. Fully customizable with CSS variables, requires no JavaScript.
1,034 lines (1,003 loc) • 32.3 kB
CSS
:root {
--cform-checkbox-width: 26px;
--cform-radius: 10px;
--cform-font-size: 16px;
--cform-padding: 5px;
--cform-border-width: 0px;
--cform-border-width-focus: 3px;
--cform-border-blur: 0px;
--cform-focus-bg: rgba(255,255,255,1);
--cform-btn-default-text: rgba(75, 50, 107, 0.75);
--demo-bg: rgba(255, 255, 255, 0);
--cform-accent-color: rgba(255, 255, 255, 1);
--cform-border-focus-color: rgba(199, 188, 212, 1.00);
--cform-bg: rgba(240, 239, 242, 1.00);
--cform-text-color: rgba(75, 50, 107, 1.00);
--cform-error: rgba(232, 112, 112, 1.00);
--cform-accent: rgba(104, 73, 145, 1.00);
--cform-border-color: rgba(199, 188, 212, 0.8);
--cform-legend: rgba(104, 73, 145, 1.00);
--cform-text-placeholder-color: rgba(75, 50, 107, 0.5);
--cform-btn-default: var(--cform-bg);
--cform-accent-color-btn: var(--cform-accent-color);
--cform-error-color: var(--cform-accent-color);
--cform-info-color: var(--cform-accent-color);
--cform-secondary-color: var(--cform-accent-color);
--cform-primary-color: var(--cform-accent-color);
--cform-btn-primary: rgba(104, 73, 145, 0.7);
--cform-btn-secondary: rgba(255, 100, 134, 1.00);
--cform-btn-info: rgba(251, 195, 111, 1);
}
.hide-input, .radio-group input[type=radio], .cform-switch input[type=checkbox] {
position: absolute;
z-index: -1;
width: 0;
height: 0;
padding: 0;
margin: 0;
border: none;
overflow: hidden;
box-shadow: unset ;
}
.hide-input:focus, .radio-group input[type=radio]:focus, .cform-switch input[type=checkbox]:focus {
box-shadow: unset ;
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]) {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border: unset;
font-size: clamp(12px, var(--cform-font-size), 20px);
min-height: clamp(10px, var(--cform-font-size), 60px);
border-radius: var(--cform-radius);
padding: var(--cform-padding) calc(var(--cform-padding) * 3);
padding-block: clamp(1px, var(--cform-padding) * 2.5, 15px);
padding-inline: clamp(5px, var(--cform-padding) * 4, 20px);
color: var(--cform-text-color);
background-color: var(--cform-bg);
box-shadow: 0 0 0 var(--cform-border-width) var(--cform-border-color);
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
box-sizing: border-box;
font-family: sans-serif;
display: inline-block;
font-weight: 500;
transition: filter 0.3s linear, box-shadow 0.35s ease-in-out, background-color 0.35s ease-in-out;
max-width: 100%;
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list])[disabled] {
cursor: default;
pointer-events: none;
opacity: 0.6;
color: color-mix(in srgb, var(--cform-text-color) 85%, transparent);
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]):focus, .cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]).focus, .cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]):focus-within, .cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]):focus-visible {
background-color: var(--cform-focus-bg);
outline: unset;
box-shadow: 0 0 var(--cform-border-blur) calc(var(--cform-border-width-focus) + var(--cform-border-width)) var(--cform-border-focus-color);
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list])::-webkit-inner-spin-button {
margin-right: 0;
padding: 10px 5px;
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]):invalid, .cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]).invalid {
box-shadow: 0 0 0 clamp(1px, var(--cform-border-width-focus) + var(--cform-border-width), 5px) var(--cform-error);
color: var(--cform-error);
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]):invalid::-moz-placeholder, .cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]).invalid::-moz-placeholder {
color: var(--cform-error);
}
.cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]):invalid::placeholder, .cform:is([type=text],
[type=email],
[type=url],
[type=password],
[type=number],
[type=date],
[type=datetime-local],
[type=month],
[type=search],
[type=tel],
[type=time],
[type=week],
[type=file],
select[multiple],
textarea,
select,
input[list]).invalid::placeholder {
color: var(--cform-error);
}
.cform:is(textarea, select[multiple]) {
line-height: 1.2;
scrollbar-width: thin;
border-radius: clamp(0px, var(--cform-radius), 15px);
position: relative;
min-height: 50px;
}
.cform:is(textarea, select[multiple])::-webkit-scrollbar {
background: transparent;
width: 8px;
height: 8px;
}
.cform:is(textarea, select[multiple])::-webkit-scrollbar-thumb {
background: var(--cform-text-placeholder-color);
border-radius: 50em;
}
.cform:is(textarea, select[multiple])::-webkit-scrollbar-corner, .cform:is(textarea, select[multiple])::-webkit-resizer {
display: none;
-webkit-appearance: none;
appearance: none;
}
.cform:is(textarea):hover, .cform:is(textarea):focus {
background-image: linear-gradient(315deg, var(--cform-text-color) 50%, transparent 50%);
background-position: calc(100% - 8px) calc(100% - 8px);
background-size: 8px 8px;
background-repeat: no-repeat;
}
.cform:is(input, textarea)::-moz-placeholder {
color: color-mix(in srgb, var(--cform-text-placeholder-color) 75%, transparent);
font-weight: 200;
}
.cform:is(input, textarea)::placeholder {
color: color-mix(in srgb, var(--cform-text-placeholder-color) 75%, transparent);
font-weight: 200;
}
.cform:is(select[multiple]) {
line-height: 20px;
}
.cform:is(select[multiple]) option {
padding: 3px 5px;
margin: 1px 0;
}
.cform:is(select[multiple]) option:checked {
background-color: var(--cform-accent);
color: var(--cform-accent-color);
}
.cform:is([type=date], [type=datetime-local], [type=month], [type=time], [type=week])::-webkit-datetime-edit {
color: var(--cform-text-color);
}
.cform:focus-within::-webkit-calendar-picker-indicator {
opacity: 0.8;
}
.cform::-webkit-calendar-picker-indicator {
opacity: 0.4;
cursor: pointer;
-webkit-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
scale: 1.2;
}
.cform::-webkit-calendar-picker-indicator:hover {
opacity: 0.8;
}
.cform::-webkit-datetime-edit-fields-wrapper {
padding: 0;
}
.cform::-webkit-date-and-time-value {
min-height: 1.5em;
}
.cform:is(input[list])::-webkit-calendar-picker-indicator {
display: none ;
}
.cform:is(select:not([multiple]), input[list]) {
padding-right: clamp(30px, var(--cform-padding) * 9, 60px);
background-image: linear-gradient(45deg, transparent 50%, color-mix(in srgb, var(--cform-text-placeholder-color) 70%, transparent) 50%), linear-gradient(135deg, color-mix(in srgb, var(--cform-text-placeholder-color) 70%, transparent) 50%, transparent 50%);
background-position: calc(100% - clamp(15px, var(--cform-padding) + 13px, 25px)) 50%, calc(100% - clamp(10px, var(--cform-padding) + 8px, 20px)) 50%;
background-size: 5px 5px, 5px 5px;
background-repeat: no-repeat;
cursor: pointer;
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
position: relative;
}
.cform:is(textarea) {
resize: vertical;
min-height: clamp(50px, 3rem, 99999px);
}
.cform[type=search]::-webkit-search-decoration, .cform[type=search]::-webkit-search-cancel-button, .cform[type=search]::-webkit-search-results-button, .cform[type=search]::-webkit-search-results-decoration {
display: none ;
-webkit-appearance: none ;
appearance: none ;
opacity: 0 ;
}
.cform[type=checkbox], .cform[type=radio] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding: 0;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
display: inline-block;
vertical-align: middle;
background-origin: border-box;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
flex-shrink: 0;
height: clamp(16px, var(--cform-checkbox-width), 40px);
width: clamp(16px, var(--cform-checkbox-width), 40px);
cursor: pointer;
border-radius: clamp(0px, var(--cform-radius) - 2px, 8px);
margin: 0;
background-color: var(--cform-accent);
background-size: 0;
border-color: transparent;
box-shadow: unset;
transition: background-size 0.15s ease-in-out, box-shadow 0.3s linear;
}
.cform[type=checkbox]:focus-visible, .cform[type=radio]:focus-visible {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
.cform[type=checkbox][disabled], .cform[type=radio][disabled] {
cursor: default;
opacity: 0.5;
box-shadow: unset;
}
.cform[type=checkbox] {
position: relative;
}
.cform[type=checkbox]:before {
content: "";
transition: scale 0.2s ease-in-out;
border-left: 0 solid var(--cform-accent-color);
border-bottom: 0 solid var(--cform-accent-color);
border-left-width: clamp(2px, var(--cform-border-width), 3px);
border-bottom-width: clamp(2px, var(--cform-border-width), 3px);
position: absolute;
width: clamp(10px, var(--cform-checkbox-width) / 2, 28px);
height: clamp(6px, var(--cform-checkbox-width) / 4, 23px);
top: 50%;
left: 50%;
transform: rotate(-50deg) translateY(-60%) translateX(-40%);
transform-origin: left top;
scale: 0;
}
.cform[type=checkbox]:checked {
border-color: transparent;
box-shadow: unset;
}
.cform[type=checkbox]:checked:before {
scale: 1;
}
.cform[type=radio] {
border-radius: 100%;
height: clamp(16px, var(--cform-checkbox-width) - 4px, 40px);
width: clamp(16px, var(--cform-checkbox-width) - 4px, 40px);
position: relative;
}
.cform[type=radio]:before {
transition: scale 0.25s ease-in-out;
content: "";
height: clamp(8px, var(--cform-checkbox-width) - 16px, 15px);
width: clamp(8px, var(--cform-checkbox-width) - 16px, 15px);
border-radius: 100%;
background: var(--cform-accent-color);
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
scale: 0;
transform-origin: top left;
}
.cform[type=radio]:checked:before {
scale: 1;
}
.cform-switch {
--switch-width: clamp(15px, calc(var(--cform-checkbox-width) - 6px), 30px);
overflow: hidden;
padding: 4px;
display: inline-flex;
align-items: flex-start;
}
.cform-switch input[type=checkbox] + label {
cursor: pointer;
width: calc(var(--switch-width) * 2.3);
height: calc(var(--switch-width) + 4px);
max-width: 100%;
display: inline-block;
overflow: hidden;
border-radius: calc(var(--cform-radius) + 2px);
position: relative;
vertical-align: bottom;
background-color: color-mix(in srgb, var(--cform-bg) 90%, #000);
transition: background 0.2s ease-in-out;
}
.cform-switch input[type=checkbox] + label:after {
content: "";
position: absolute;
display: inline-block;
left: 2px;
width: var(--switch-width);
height: var(--switch-width);
top: 2px;
background-color: var(--cform-text-placeholder-color);
border-radius: var(--cform-radius);
box-sizing: border-box;
transition: left 0.2s ease-in-out;
}
.cform-switch input[type=checkbox]:checked + label {
background-color: var(--cform-accent);
}
.cform-switch input[type=checkbox]:checked + label:after {
left: calc(100% - (var(--switch-width) + 2px));
background-color: var(--cform-accent-color);
}
.cform-switch:has(:focus-visible):focus-within label {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
.cform-switch:has([disabled]) {
opacity: 0.5;
}
.cform::-webkit-calendar-picker-indicator:focus-visible {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
border-radius: clamp(0px, var(--cform-radius) / 2, 5px);
}
.cform-switch-small {
--switch-width: clamp(10px, calc(var(--cform-checkbox-width) - 15px), 20px);
}
.cform-switch-big {
--switch-width: clamp(20px, calc(var(--cform-checkbox-width) - 2px ), 40px);
}
.radio-group {
border-radius: var(--cform-radius);
overflow: hidden;
background: var(--cform-bg);
padding: clamp(3px, var(--cform-padding), 8px);
display: inline-flex ;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
color: var(--cform-text-color);
}
.radio-group input[type=radio]:checked + label {
color: var(--cform-accent-color);
background: var(--cform-accent);
}
.radio-group input[type=radio]:focus + label {
box-shadow: 0 0 0 1px var(--form-color) ;
}
.radio-group:has(:focus-visible):focus-within {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
.radio-group label {
color: var(--gray-65);
cursor: pointer;
padding-block: clamp(3px, var(--cform-padding) + 3px, 10px);
padding-inline: clamp(10px, var(--cform-padding) * 4, 20px);
transition: background 0.1s ease-in-out, color 0.2s linear;
border-radius: calc(var(--cform-radius) - 2px);
white-space: nowrap;
font-size: clamp(12px, var(--cform-font-size) - 1px, 20px);
}
.radio-group label:hover {
color: var(--gray-90);
}
.radio-group.radio-group-small {
padding: clamp(3px, var(--cform-padding) - 1px, 6px);
}
.radio-group.radio-group-small label {
padding-block: clamp(3px, var(--cform-padding), 5px);
padding-inline: clamp(10px, var(--cform-padding) + 10px, 15px);
font-size: clamp(12px, var(--cform-font-size) - 3px, 18px);
}
input.cform:-webkit-autofill {
box-shadow: inset 0 0 0 100px var(--cform-bg);
}
input.cform:-webkit-autofill:focus {
box-shadow: inset 0 0 0 100px var(--cform-bg), 0 0 var(--cform-border-blur) calc(var(--cform-border-width-focus) + var(--cform-border-width)) var(--cform-border-focus-color);
}
input[type=range].cform {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
margin: 10px 0;
width: 100%;
background: unset;
outline: none;
}
input[type=range].cform::-webkit-slider-runnable-track {
height: clamp(10px, var(--cform-checkbox-width) / 2 + var(--cform-border-width), 30px);
background: var(--cform-bg);
border: var(--cform-border-width) solid color-mix(in srgb, var(--cform-bg) 97%, #000000);
border-radius: clamp(0px, var(--cform-radius) / 2, 20px);
-webkit-appearance: none;
appearance: none;
box-sizing: border-box;
}
input[type=range].cform::-webkit-slider-runnable-track:focus {
outline: 0;
}
input[type=range].cform::-webkit-slider-runnable-track:focus-visible {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
input[type=range].cform::-moz-range-track {
height: clamp(10px, var(--cform-checkbox-width) / 2 + var(--cform-border-width), 30px);
background: var(--cform-bg);
border: var(--cform-border-width) solid color-mix(in srgb, var(--cform-bg) 97%, #000000);
border-radius: clamp(0px, var(--cform-radius) / 2, 20px);
-moz-appearance: none;
appearance: none;
box-sizing: border-box;
}
input[type=range].cform::-moz-range-track:focus {
outline: 0;
}
input[type=range].cform::-moz-range-track:focus-visible {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
input[type=range].cform::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
border: none;
height: clamp(10px, var(--cform-checkbox-width) / 2 + var(--cform-border-width), 30px);
width: clamp(10px, var(--cform-checkbox-width) / 2 + var(--cform-border-width), 30px);
cursor: pointer;
border-radius: clamp(0px, var(--cform-radius) / 2.5, 20px);
background: var(--cform-accent);
margin-top: calc(0px - var(--cform-border-width));
scale: 1.4;
}
input[type=range].cform::-moz-range-thumb {
-moz-appearance: none;
appearance: none;
border: none;
height: clamp(10px, var(--cform-checkbox-width) / 2 + var(--cform-border-width), 30px);
width: clamp(10px, var(--cform-checkbox-width) / 2 + var(--cform-border-width), 30px);
cursor: pointer;
border-radius: clamp(0px, var(--cform-radius) / 2.5, 20px);
background: var(--cform-accent);
margin-top: calc(0px - var(--cform-border-width));
scale: 1.4;
}
input[type=range].cform:focus-visible::-webkit-slider-runnable-track {
outline: 3px solid var(--cform-text-placeholder-color);
outline-offset: 4px;
}
input[type=range].cform:focus-visible::-moz-range-track {
outline: 3px solid var(--cform-text-placeholder-color);
outline-offset: 4px;
}
.cform.custom-checkbox {
position: relative;
cursor: pointer;
}
.cform.custom-checkbox input[type=checkbox] {
position: relative;
cursor: pointer;
height: clamp(16px, var(--cform-checkbox-width) - clamp(2px, var(--cform-border-width), 100px), 40px);
width: clamp(16px, var(--cform-checkbox-width) - clamp(2px, var(--cform-border-width), 100px), 40px);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: 0;
box-sizing: border-box;
}
.cform.custom-checkbox input[type=checkbox][disabled] {
opacity: 0.5;
pointer-events: none;
cursor: default;
}
.cform.custom-checkbox input[type=checkbox]:focus {
outline: 0;
}
.cform.custom-checkbox input[type=checkbox]:focus-visible:after {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
.cform.custom-checkbox input[type=checkbox]:after {
content: "";
position: absolute;
height: clamp(16px, var(--cform-checkbox-width) - clamp(2px, var(--cform-border-width), 100px), 40px);
width: clamp(16px, var(--cform-checkbox-width) - clamp(2px, var(--cform-border-width), 100px), 40px);
cursor: pointer;
border-radius: clamp(0px, var(--cform-radius) - 2px, 6px);
}
.cform.custom-checkbox input[type=checkbox]:before {
transition: border-left-width 0.3s ease-in-out, border-bottom-width 0.3s ease-in-out, border-color 0.3s ease-in-out, transform 0.1s ease-in-out;
content: "";
position: absolute;
height: clamp(16px, var(--cform-checkbox-width) - clamp(2px, var(--cform-border-width), 100px), 40px);
width: clamp(16px, var(--cform-checkbox-width) - clamp(2px, var(--cform-border-width), 100px), 40px);
cursor: pointer;
border-radius: clamp(0px, var(--cform-radius) - 2px, 6px);
border: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-accent);
}
.cform.custom-checkbox input[type=checkbox]:checked:before {
transform: rotate(-50deg) scale(0.99);
height: clamp(9px, var(--cform-checkbox-width) / 2, 20px);
width: clamp(15px, var(--cform-checkbox-width) / 1.2, 35px);
border-color: var(--cform-accent);
border-top-style: none;
border-right-style: none;
transform-origin: 70% 50%;
border-radius: 0;
}
.cform:is([type=file]) {
background: unset ;
border: unset;
font-size: clamp(10px, var(--cform-font-size) - 2px, 20px);
cursor: pointer;
line-height: 1;
padding: 0 ;
box-shadow: unset ;
margin: 0 ;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.cform:is([type=file])::file-selector-button, .cform:is([type=file])::-webkit-file-upload-button {
margin-right: 15px;
background-color: var(--cform-accent);
border: unset;
border-radius: clamp(0px, var(--cform-radius) - 2px, 30px);
padding: var(--cform-padding) calc(var(--cform-padding) * 3);
padding-block: clamp(5px, var(--cform-padding) * 2.5, 15px);
padding-inline: clamp(10px, var(--cform-padding) * 3, 20px);
font-size: clamp(10px, var(--cform-font-size) - 1px, 20px);
line-height: 1;
cursor: pointer;
color: var(--cform-accent-color);
}
.cform:is([type=file]):focus-within {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
.cform:is([type=file]):has(:focus-within) {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
input[type=color].cform {
background-color: var(--cform-bg);
border: clamp(0px, var(--cform-border-width), 2px) solid color-mix(in srgb, var(--cform-bg) 97%, #000000);
border-radius: clamp(0px, var(--cform-radius) - 2px, 30px);
border: unset;
margin: 0 ;
padding: 2px ;
box-sizing: unset;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
inline-size: clamp(20px, var(--cform-checkbox-width), 55px);
block-size: clamp(20px, var(--cform-checkbox-width), 55px);
}
input[type=color].cform::-webkit-color-swatch-wrapper {
padding: 0;
}
input[type=color].cform::-webkit-color-swatch {
border-color: color-mix(in srgb, var(--cform-bg) 92%, #000000);
border-radius: clamp(0px, var(--cform-radius) - 4px, 30px);
cursor: pointer;
}
input[type=color].cform:focus-visible {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
fieldset.cform {
border: clamp(1px, var(--cform-border-width), 1px) solid color-mix(in srgb, var(--cform-bg) 97%, #000000);
box-sizing: border-box;
border-radius: clamp(0px, var(--cform-radius) - 2px, 20px);
padding: var(--cform-padding) calc(var(--cform-padding) * 3);
padding-block: clamp(20px, var(--cform-padding) * 4, 35px);
padding-inline: clamp(10px, var(--cform-padding) * 3, 30px);
overflow: hidden;
}
fieldset.cform * {
max-width: 100%;
}
fieldset.cform legend {
color: var(--cform-legend);
font-weight: 300;
padding-inline: 20px;
font-size: clamp(11px, var(--cform-font-size) - 2px, 20px);
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.cform-btn {
display: inline-block;
margin: 0;
color: var(--cform-btn-default-text);
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: none;
white-space: nowrap;
line-height: 1.42857;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
padding: clamp(5px, var(--cform-padding) * 2, 10px) clamp(10px, var(--cform-padding) * 6, 50px);
font-size: clamp(12px, var(--cform-font-size) - 1px, 20px);
transition: background 0.1s linear, box-shadow 0.15s linear, color 0.1s linear;
flex-shrink: 0;
text-decoration: none;
border-radius: clamp(0px, var(--cform-radius) - 2px, 30px);
background-color: var(--cform-btn-default);
box-sizing: border-box;
min-width: 90px;
-webkit-tap-highlight-color: transparent;
}
.cform-btn:hover {
background-color: color-mix(in srgb, var(--cform-btn-default) 80%, #fff);
}
.cform-btn:active {
background-color: color-mix(in srgb, var(--cform-btn-default) 97%, #000);
}
.cform-btn:focus-visible {
outline: clamp(2px, var(--cform-border-width), 5px) solid var(--cform-border-focus-color);
outline-offset: 2px;
}
.cform-btn[disabled] {
opacity: 0.5;
pointer-events: none;
}
.cform-btn.cform-btn-xl {
padding-block: clamp(10px, var(--cform-padding) * 2.7, 20px);
padding-inline: clamp(15px, var(--cform-padding) * 6, 50px);
font-size: clamp(12px, var(--cform-font-size) + 1px, 20px);
min-width: 120px;
}
.cform-btn.cform-btn-l {
padding-block: clamp(10px, var(--cform-padding) * 2.5, 13px);
padding-inline: clamp(15px, var(--cform-padding) * 5.5, 40px);
min-width: 70px;
}
.cform-btn.cform-btn-sm {
padding-block: clamp(5px, var(--cform-padding) - 10px, 7px);
padding-inline: clamp(10px, var(--cform-padding) * 3, 20px);
font-size: clamp(10px, var(--cform-font-size) - 3px, 20px);
border-radius: clamp(0px, var(--cform-radius) - 4px, 30px);
min-width: 50px;
}
.cform-btn.cform-btn-primary {
background-color: var(--cform-btn-primary);
color: var(--cform-primary-color);
}
.cform-btn.cform-btn-primary:hover {
background-color: color-mix(in srgb, var(--cform-btn-primary) 80%, #fff);
}
.cform-btn.cform-btn-primary:active {
background-color: color-mix(in srgb, var(--cform-btn-primary) 80%, #000);
}
.cform-btn.cform-btn-secondary {
background-color: var(--cform-btn-secondary);
color: var(--cform-secondary-color);
}
.cform-btn.cform-btn-secondary:hover {
background-color: color-mix(in srgb, var(--cform-btn-secondary) 80%, #fff);
}
.cform-btn.cform-btn-secondary:active {
background-color: color-mix(in srgb, var(--cform-btn-secondary) 80%, #000);
}
.cform-btn.cform-btn-info {
background-color: var(--cform-btn-info);
color: var(--cform-info-color);
}
.cform-btn.cform-btn-info:hover {
background-color: color-mix(in srgb, var(--cform-btn-info) 80%, #fff);
}
.cform-btn.cform-btn-info:active {
background-color: color-mix(in srgb, var(--cform-btn-info) 80%, #000);
}
.cform-btn.cform-btn-error {
background-color: var(--cform-error);
color: var(--cform-error-color);
}
.cform-btn.cform-btn-error:hover {
background-color: color-mix(in srgb, var(--cform-error) 90%, #fff);
}
.cform-btn.cform-btn-error:active {
background-color: color-mix(in srgb, var(--cform-error) 80%, #000);
}
.cform-btn.cform-btn-accent {
background-color: var(--cform-accent);
color: var(--cform-accent-color-btn);
}
.cform-btn.cform-btn-accent:hover {
background-color: color-mix(in srgb, var(--cform-accent) 90%, #fff);
}
.cform-btn.cform-btn-accent:active {
background-color: color-mix(in srgb, var(--cform-accent) 80%, #000);
}
.cform-btn.cform-btn-outlined {
margin: 0;
background-color: transparent;
color: var(--cform-border-color);
border: clamp(2px, var(--cform-border-width), 4px) solid var(--cform-border-color);
padding-block: clamp(5px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 2 - clamp(2px, var(--cform-border-width), 4px), 10px - clamp(2px, var(--cform-border-width), 4px));
padding-inline: clamp(10px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 6 - clamp(2px, var(--cform-border-width), 4px), 50px - clamp(2px, var(--cform-border-width), 4px));
}
.cform-btn.cform-btn-outlined.cform-btn-xl {
padding-block: clamp(10px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 2.7 - clamp(2px, var(--cform-border-width), 4px), 20px - clamp(2px, var(--cform-border-width), 4px));
padding-inline: clamp(15px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 6 - clamp(2px, var(--cform-border-width), 4px), 50px - clamp(2px, var(--cform-border-width), 4px));
}
.cform-btn.cform-btn-outlined.cform-btn-l {
padding-block: clamp(10px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 2.5 - clamp(2px, var(--cform-border-width), 4px), 13px - clamp(2px, var(--cform-border-width), 4px));
padding-inline: clamp(15px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 5.5 - clamp(2px, var(--cform-border-width), 4px), 40px - clamp(2px, var(--cform-border-width), 4px));
}
.cform-btn.cform-btn-outlined.cform-btn-sm {
padding-block: clamp(5px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) - 10px - clamp(2px, var(--cform-border-width), 4px), 7px - clamp(2px, var(--cform-border-width), 4px));
padding-inline: clamp(10px - clamp(2px, var(--cform-border-width), 4px), var(--cform-padding) * 3 - clamp(2px, var(--cform-border-width), 4px), 20px - clamp(2px, var(--cform-border-width), 4px));
}
.cform-btn.cform-btn-outlined.cform-btn-primary {
background-color: unset;
border-color: var(--cform-btn-primary);
color: var(--cform-btn-primary);
}
.cform-btn.cform-btn-outlined.cform-btn-primary:hover {
background-color: var(--cform-btn-primary);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-primary:active {
background-color: color-mix(in srgb, var(--cform-btn-primary) 80%, #fff);
border-color: color-mix(in srgb, var(--cform-btn-primary) 80%, #fff);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-secondary {
background-color: unset;
border-color: var(--cform-btn-secondary);
color: var(--cform-btn-secondary);
}
.cform-btn.cform-btn-outlined.cform-btn-secondary:hover {
background-color: var(--cform-btn-secondary);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-secondary:active {
background-color: color-mix(in srgb, var(--cform-btn-secondary) 80%, #fff);
border-color: color-mix(in srgb, var(--cform-btn-secondary) 80%, #fff);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-info {
background-color: unset;
border-color: var(--cform-btn-info);
color: var(--cform-btn-info);
}
.cform-btn.cform-btn-outlined.cform-btn-info:hover {
background-color: var(--cform-btn-info);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-info:active {
background-color: color-mix(in srgb, var(--cform-btn-info) 80%, #fff);
border-color: color-mix(in srgb, var(--cform-btn-info) 80%, #fff);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-error {
background-color: unset;
border-color: var(--cform-error);
color: var(--cform-error);
}
.cform-btn.cform-btn-outlined.cform-btn-error:hover {
background-color: var(--cform-error);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-error:active {
background-color: color-mix(in srgb, var(--cform-error) 80%, #fff);
border-color: color-mix(in srgb, var(--cform-error) 80%, #fff);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-accent {
background-color: unset;
border-color: var(--cform-accent);
color: var(--cform-accent);
}
.cform-btn.cform-btn-outlined.cform-btn-accent:hover {
background-color: var(--cform-accent);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-outlined.cform-btn-accent:active {
background-color: color-mix(in srgb, var(--cform-accent) 80%, #fff);
border-color: color-mix(in srgb, var(--cform-accent) 80%, #fff);
color: var(--cform-accent-color);
}
.cform-btn.cform-btn-link {
background-color: transparent ;
border: unset ;
color: var(--cform-accent);
}
.cform-btn.cform-btn-rounded {
border-radius: 50em;
}
.cform-btn.cform-btn-block {
display: block;
width: 100%;
}