UNPKG

pragmate-ui

Version:

An advanced, on-demand React UI library optimized for BeyondJS. Pragmate UI provides modular, responsive, and accessible components with a focus on efficient bundle sizes and a streamlined development process.

765 lines (763 loc) 21.8 kB
.pui-checkbox.disabled .pui-checkbox--label { opacity: 0.5; cursor: default; pointer-events: none; } .pui-checkbox .pui-checkbox--label { display: flex; align-items: center; gap: 0.5rem; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; } .pui-checkbox .pui-checkbox--label span { display: inline-block; vertical-align: middle; transform: translate3d(0, 0, 0); color: var(--on-background); } .pui-checkbox .pui-checkbox--label span:first-child { position: relative; width: 16px; height: 16px; border-radius: 4px; transform: scale(1); vertical-align: middle; border: 1px solid var(--outline); transition: all 0.2s ease; } .pui-checkbox .pui-checkbox--label span:first-child svg { position: absolute; z-index: 1; top: 3px; left: 2px; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 14px; stroke-dashoffset: 16px; transition: all 0.3s ease; transition-delay: 0.1s; transform: translate3d(0, 0, 0); width: 12px; height: 9px; } .pui-checkbox .pui-checkbox--label span:first-child:before { content: ""; width: 100%; height: 100%; background-color: var(--primary); display: block; transform: scale(0); opacity: 1; border-radius: 6px; transition-delay: 0.2s; } .pui-checkbox .pui-checkbox--label span:last-child:after { content: ""; position: absolute; top: 13px; left: 0; height: 1px; width: 100%; transform-origin: 0 0; transform: scaleX(0); } .pui-checkbox .pui-checkbox--label:hover span:first-child { border-color: var(--primary); } .pui-checkbox .pui-checkbox--input { display: none; } .pui-checkbox .pui-checkbox--input:checked + .pui-checkbox--label span:first-child { border-color: var(--primary); background: var(--primary); -webkit-animation: check 0.6s ease; animation: check 0.6s ease; } .pui-checkbox .pui-checkbox--input:checked + .pui-checkbox--label span:first-child svg { stroke-dashoffset: 0; stroke: var(--on-primary); } .pui-checkbox .pui-checkbox--input:checked + .pui-checkbox--label span:first-child:before { transform: scale(2.2); opacity: 0; transition: all 0.6s ease; } .pui-checkbox .pui-checkbox--input:checked + .pui-checkbox--label span:last-child { color: var(--on-surface); transition: all 0.3s ease; } .pui-checkbox .pui-checkbox--input:checked + .pui-checkbox--label span:after { transform: scaleX(1); transition: all 0.3s ease; } @-webkit-keyframes check { 50% { transform: scale(1.2); } } @keyframes check { 50% { transform: scale(1.2); } } .pui-checkbox:hover { /* On mouse-over, add a grey background color */ /* When the checkbox is checked, add a blue background */ } .pui-checkbox:hover input ~ .checkmark { background-color: var(--outline); } .pui-checkbox:hover input:checked ~ .checkmark { background-color: var(--primary); } .pui-checkbox input:checked ~ .checkmark:after { display: block; } .pui-checkbox .checkmark { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: var(--outline); /* Create the checkmark/indicator (hidden when not checked) */ } .pui-checkbox .checkmark .checkmark:after { content: ""; position: absolute; display: none; } .pui-checkbox .checkmark:after { left: 9px; top: 5px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .pui-checkbox-group .pui-group__items-container { display: flex; flex-direction: column; flex-wrap: wrap; gap: 1rem; } .pui-checkbox-group.pui-checkbox-group--row .pui-group__items-container { flex-direction: row; } .pui-checkbox-group, .pui-input, .pui-input-select { display: flex; flex-direction: column; position: relative; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; } .pui-checkbox-group input, .pui-checkbox-group select, .pui-checkbox-group textarea, .pui-input input, .pui-input select, .pui-input textarea, .pui-input-select input, .pui-input-select select, .pui-input-select textarea { order: 2; box-sizing: border-box; background: transparent; box-shadow: none; border: 0.063rem solid var(--outline); padding: 0.5rem 1rem; outline: none; width: 100%; border-radius: var(--border-radius-base); margin: 0; font-size: 1rem; color: inherit; line-height: inherit; transition: border-color ease-in-out 0.3s; } .pui-checkbox-group input:disabled, .pui-checkbox-group select:disabled, .pui-checkbox-group textarea:disabled, .pui-input input:disabled, .pui-input select:disabled, .pui-input textarea:disabled, .pui-input-select input:disabled, .pui-input-select select:disabled, .pui-input-select textarea:disabled { opacity: 0.3; cursor: not-allowed; } .pui-checkbox-group input:state(webkit-autofill), .pui-checkbox-group input::state(webkit-autofill), .pui-checkbox-group input:state(autofill), .pui-checkbox-group input::state(autofill), .pui-checkbox-group select:state(webkit-autofill), .pui-checkbox-group select::state(webkit-autofill), .pui-checkbox-group select:state(autofill), .pui-checkbox-group select::state(autofill), .pui-checkbox-group textarea:state(webkit-autofill), .pui-checkbox-group textarea::state(webkit-autofill), .pui-checkbox-group textarea:state(autofill), .pui-checkbox-group textarea::state(autofill), .pui-input input:state(webkit-autofill), .pui-input input::state(webkit-autofill), .pui-input input:state(autofill), .pui-input input::state(autofill), .pui-input select:state(webkit-autofill), .pui-input select::state(webkit-autofill), .pui-input select:state(autofill), .pui-input select::state(autofill), .pui-input textarea:state(webkit-autofill), .pui-input textarea::state(webkit-autofill), .pui-input textarea:state(autofill), .pui-input textarea::state(autofill), .pui-input-select input:state(webkit-autofill), .pui-input-select input::state(webkit-autofill), .pui-input-select input:state(autofill), .pui-input-select input::state(autofill), .pui-input-select select:state(webkit-autofill), .pui-input-select select::state(webkit-autofill), .pui-input-select select:state(autofill), .pui-input-select select::state(autofill), .pui-input-select textarea:state(webkit-autofill), .pui-input-select textarea::state(webkit-autofill), .pui-input-select textarea:state(autofill), .pui-input-select textarea::state(autofill) { background-color: transparent !important; } .pui-checkbox-group input:state(webkit-autofill:hover), .pui-checkbox-group input:state(webkit-autofill:focus), .pui-checkbox-group select:state(webkit-autofill:hover), .pui-checkbox-group select:state(webkit-autofill:focus), .pui-checkbox-group textarea:state(webkit-autofill:hover), .pui-checkbox-group textarea:state(webkit-autofill:focus), .pui-input input:state(webkit-autofill:hover), .pui-input input:state(webkit-autofill:focus), .pui-input select:state(webkit-autofill:hover), .pui-input select:state(webkit-autofill:focus), .pui-input textarea:state(webkit-autofill:hover), .pui-input textarea:state(webkit-autofill:focus), .pui-input-select input:state(webkit-autofill:hover), .pui-input-select input:state(webkit-autofill:focus), .pui-input-select select:state(webkit-autofill:hover), .pui-input-select select:state(webkit-autofill:focus), .pui-input-select textarea:state(webkit-autofill:hover), .pui-input-select textarea:state(webkit-autofill:focus) { background: transparent; box-shadow: none; transition: background-color 5000s ease-in-out 0s; } .pui-checkbox-group[data-autocompleted], .pui-checkbox-group textarea[data-autocompleted], .pui-input[data-autocompleted], .pui-input textarea[data-autocompleted], .pui-input-select[data-autocompleted], .pui-input-select textarea[data-autocompleted] { background-color: transparent; } .pui-checkbox-group label, .pui-input label, .pui-input-select label { order: 1; flex: 1; } .pui-checkbox-group label.pui-input__label--bottom, .pui-checkbox-group label.pui-input__label--bottom-right, .pui-input label.pui-input__label--bottom, .pui-input label.pui-input__label--bottom-right, .pui-input-select label.pui-input__label--bottom, .pui-input-select label.pui-input__label--bottom-right { order: 3; } .pui-input .pui-input__icon { position: absolute; fill: var(--text-color); right: 1rem; bottom: 0.5rem; transition: fill 300ms ease-in; } .pui-input .pui-input__icon { transition: opacity 300ms ease-in-out; } .pui-input .pui-input__icon:hover { opacity: 0.7; } .pui-input input[type=date]::-webkit-inner-spin-button, .pui-input input[type=date]::-webkit-calendar-picker-indicator { display: none; -webkit-appearance: none; } .pui-input input[type=week]::-webkit-inner-spin-button, .pui-input input[type=week]::-webkit-calendar-picker-indicator { display: none; -webkit-appearance: none; } .pui-input input[type=month]::-webkit-inner-spin-button, .pui-input input[type=month]::-webkit-calendar-picker-indicator { display: none; -webkit-appearance: none; } .pui-input input[type=time]::-webkit-inner-spin-button, .pui-input input[type=time]::-webkit-calendar-picker-indicator { display: none; -webkit-appearance: none; } .pui-input input[type=datetime-local]::-webkit-inner-spin-button, .pui-input input[type=datetime-local]::-webkit-calendar-picker-indicator { display: none; -webkit-appearance: none; } .pui-input.error--right .pui-input-error-label, .pui-textarea.error--right .pui-input-error-label { right: 0; } .pui-input .pui-input-error-label, .pui-textarea .pui-input-error-label { position: absolute; bottom: -1.25rem; font-size: 0.75rem; color: var(--error-40); } .pui-input .pui-input-error-label.right, .pui-textarea .pui-input-error-label.right { right: 0; } .pui-input.pui-input--floating { position: relative; padding-top: 1.3rem; padding-bottom: 0.5rem; border: 1px solid var(--outline); border-radius: var(--border-radius-base); transition: all 300ms ease-in-out; } .pui-input.pui-input--floating input { padding: 0 1rem; border: none; background: transparent; width: 100%; box-sizing: border-box; border-radius: var(--border-radius-base); } .pui-input.pui-input--floating input:not(.with-placeholder)::-webkit-input-placeholder { color: transparent; } .pui-input.pui-input--floating input:not(.with-placeholder)::-moz-placeholder { color: transparent; } .pui-input.pui-input--floating input:not(.with-placeholder):-ms-input-placeholder { color: transparent; } .pui-input.pui-input--floating input:not(.with-placeholder)::-ms-input-placeholder { color: transparent; } .pui-input.pui-input--floating input:not(.with-placeholder)::placeholder { color: transparent; } .pui-input.pui-input--floating input:focus { outline: none; } .pui-input.pui-input--floating:focus-within .pui-input__label.floating-label, .pui-input.pui-input--floating input:not(:placeholder-shown) ~ .pui-input__label.floating-label { top: 0.3rem; left: 1rem; font-size: 0.725rem; color: var(--text-color); } .pui-input.pui-input--floating label.pui-input__label.floating-label { position: absolute; pointer-events: none; left: 1rem; top: 1rem; transition: 0.2s ease all; } .pui-input.pui-input--floating.left-icon label.pui-input__label.floating-label { left: 1rem; } .pui-input.pui-input--password input { padding: 0.5rem 2rem 0.5rem 1rem; } .pui-input.pui-input--password .icon-eye.icon-eye { position: absolute; bottom: 0.5rem; right: 0.5rem; width: 1.25rem; height: 1.25rem; padding: 0; } .pui-input.pui-input--password .icon-eye.icon-eye svg.pui-icon { width: 1.25rem; height: 1.25rem; fill: var(--primary); } .pui-input.pui-input--password.pui-input--icon .icon-eye { right: 2.375rem; } .pui-input.pui-input--password.pui-input--icon.left-icon input { padding: 0.5rem 2rem 0.5rem 2rem; } .pui-input.pui-input--password.pui-input--icon.left-icon .icon-eye { right: 0.5rem; } .pui-input.pui-input--icon input { padding: 0.5rem 2rem 0.5rem 1rem; } .pui-input.pui-input--icon svg.pui-icon.input-icon { fill: var(--primary); } .pui-input.pui-input--icon.icon__floating svg.pui-icon.input-icon { top: 0.5rem; } .pui-input.pui-input--icon.left-icon input { padding: 0.5rem 1rem 0.5rem 2rem; } .pui-input.pui-input--icon.left-icon svg.pui-icon.input-icon { right: auto; left: 0.5rem; } .pui-label .label-content, .pui-input .pui-input__label .label-content, .pui-textarea .pui-input__label .label-content { display: inline-flex; justify-content: space-between; width: 100%; } .pui-label.is-required, .pui-input .pui-input__label.is-required, .pui-textarea .pui-input__label.is-required { position: relative; } .pui-label.is-required > span, .pui-input .pui-input__label.is-required > span, .pui-textarea .pui-input__label.is-required > span { position: relative; width: auto; } .pui-label.is-required > span:after, .pui-input .pui-input__label.is-required > span:after, .pui-textarea .pui-input__label.is-required > span:after { position: absolute; content: "*"; right: -0.8rem; align-content: center; } .pui-label.pui-input__label--right .label-content, .pui-label.pui-input__label--bottom-right .label-content, .pui-input .pui-input__label.pui-input__label--right .label-content, .pui-input .pui-input__label.pui-input__label--bottom-right .label-content, .pui-textarea .pui-input__label.pui-input__label--right .label-content, .pui-textarea .pui-input__label.pui-input__label--bottom-right .label-content { justify-content: flex-end; } .pui-label span.pui-input__label--right, .pui-input .pui-input__label span.pui-input__label--right, .pui-textarea .pui-input__label span.pui-input__label--right { display: flex; align-self: end; } .pui-input input[type=password]::-ms-reveal, .pui-input input[type=password]::-ms-clear, .pui-input input[type=password]::-webkit-contacts-auto-fill-button, .pui-input input[type=password]::-webkit-credentials-auto-fill-button { display: none; } .pragmate-element-radio { display: flex; gap: 0.5rem; align-items: center; cursor: pointer; } .pragmate-element-radio label { display: block; line-height: 1; } .pui-input-radio { margin: 0.5rem; display: flex; } .pui-input-radio input[type=radio] { position: absolute; opacity: 0; } .pui-input-radio input[type=radio] + .pui-radio-label:before { content: ""; background: var(--surface); border-radius: 100%; border: 1px solid var(--outline); display: inline-block; width: 1em; height: 1em; position: relative; top: -0.1rem; margin-right: 0.5rem; vertical-align: top; cursor: pointer; text-align: center; transition: all 250ms ease; } .pui-input-radio input[type=radio]:checked + .pui-radio-label:before { background-color: var(--primary); box-shadow: inset 0 0 0 4px var(--surface); } .pui-input-radio input[type=radio]:focus + .pui-radio-label:before { outline: none; border-color: var(--primary); } .pui-input-radio input[type=radio]:disabled + .radio-label:before { box-shadow: inset 0 0 0 4px #f4f4f4; border-color: var(--disabled); } .pui-input-radio input[type=radio] + .radio-label:empty:before { margin-right: 0; } .pui-element-switch__label.xs { width: 30px; height: 14px; } .pui-element-switch__label.xs .label__btn--slider { height: 10px; width: 10px; } .pui-element-switch__label.md { width: 50px; height: 24px; } .pui-element-switch__label.md .label__btn--slider { height: 20px; width: 20px; } .pui-element-switch__label.lg { width: 70px; height: 34px; } .pui-element-switch__label.lg .label__btn--slider { height: 30px; width: 30px; } .pui-element-switch { display: flex; flex-direction: row; align-items: center; position: relative; } .pui-element-switch__checkbox { height: 0; width: 0; position: absolute; left: 20px; visibility: hidden; } .pui-element-switch__label { display: flex; align-items: center; justify-content: space-between; cursor: pointer; width: 50px; height: 24px; background: var(--surface-container); border-radius: 100px; position: relative; transition: background-color 0.2s; } .pui-element-switch__label .label__btn--slider { content: ""; position: absolute; top: 1px; left: 2px; height: 20px; width: 20px; border-radius: 45px; transition: 0.2s; box-shadow: 0 0 2px 0 rgba(10, 10, 10, 0.29); } .pui-element-switch__label:active .label__btn--slider { width: 25px; } .pui-element-switch__checkbox:checked + .pui-element-switch__label .label__btn--slider { left: calc(100% - 2px); transform: translateX(-100%); } .pui-element-switch.disabled { opacity: 0.4; } .pui-element-switch.disabled .pui-element-switch__label .label__btn--slider { cursor: not-allowed !important; } .pui-element-switch__label.primary { border: 1px solid var(--primary-40); } .pui-element-switch__label.primary .label__btn--slider { background-color: var(--primary-40); } .pui-element-switch__label.active.primary { border-color: var(--primary); background: var(--primary-30); } .pui-element-switch__label.active.primary .label__btn--slider { background: var(--primary); } .pui-element-switch__label.secondary { border: 1px solid var(--secondary-40); } .pui-element-switch__label.secondary .label__btn--slider { background-color: var(--secondary-40); } .pui-element-switch__label.active.secondary { border-color: var(--secondary); background: var(--secondary-30); } .pui-element-switch__label.active.secondary .label__btn--slider { background: var(--secondary); } .pui-element-switch__label.tertiary { border: 1px solid var(--tertiary-40); } .pui-element-switch__label.tertiary .label__btn--slider { background-color: var(--tertiary-40); } .pui-element-switch__label.active.tertiary { border-color: var(--tertiary); background: var(--tertiary-30); } .pui-element-switch__label.active.tertiary .label__btn--slider { background: var(--tertiary); } .pui-element-switch__label.success { border: 1px solid var(--success-40); } .pui-element-switch__label.success .label__btn--slider { background-color: var(--success-40); } .pui-element-switch__label.active.success { border-color: var(--success); background: var(--success-30); } .pui-element-switch__label.active.success .label__btn--slider { background: var(--success); } .pui-element-switch__label.danger { border: 1px solid var(--danger-40); } .pui-element-switch__label.danger .label__btn--slider { background-color: var(--danger-40); } .pui-element-switch__label.active.danger { border-color: var(--danger); background: var(--danger-30); } .pui-element-switch__label.active.danger .label__btn--slider { background: var(--danger); } .pui-element-switch__label.warning { border: 1px solid var(--warning-40); } .pui-element-switch__label.warning .label__btn--slider { background-color: var(--warning-40); } .pui-element-switch__label.active.warning { border-color: var(--warning); background: var(--warning-30); } .pui-element-switch__label.active.warning .label__btn--slider { background: var(--warning); } .pui-element-switch__label.info { border: 1px solid var(--info-40); } .pui-element-switch__label.info .label__btn--slider { background-color: var(--info-40); } .pui-element-switch__label.active.info { border-color: var(--info); background: var(--info-30); } .pui-element-switch__label.active.info .label__btn--slider { background: var(--info); } .pui-textarea.pui-textarea--floating { position: relative; padding-top: 1.3rem; padding-bottom: 0.5rem; border: 1px solid var(--outline); border-radius: var(--border-radius-base); transition: all 300ms ease-in-out; } .pui-textarea.pui-textarea--floating textarea { padding: 0 1rem; border: none; transition: all 300ms ease-in-out; } .pui-textarea.pui-textarea--floating textarea::-webkit-resizer { display: none; } .pui-textarea.pui-textarea--floating textarea:is(:focus)::placeholder { color: transparent; } .pui-textarea.pui-textarea--floating textarea:is(:focus) ~ label { transform: translateY(-0.8rem); font-size: 0.765rem; transform-origin: top left; } .pui-textarea.pui-textarea--floating textarea:not(.with-placeholder)::-webkit-input-placeholder { color: transparent; } .pui-textarea.pui-textarea--floating textarea:not(.with-placeholder)::-moz-placeholder { color: transparent; } .pui-textarea.pui-textarea--floating textarea:not(.with-placeholder):-ms-input-placeholder { color: transparent; } .pui-textarea.pui-textarea--floating textarea:not(.with-placeholder)::-ms-input-placeholder { color: transparent; } .pui-textarea.pui-textarea--floating textarea:not(.with-placeholder)::placeholder { color: transparent; } .pui-textarea.pui-textarea--floating textarea:not(:placeholder-shown) ~ label { transform: translateY(-0.8rem); font-size: 0.765rem; transform-origin: top left; } .pui-textarea.pui-textarea--floating label { transition: all 300ms ease-in-out; position: absolute; left: 1rem; top: 1rem; } .pui-textarea { position: relative; display: flex; flex-direction: column-reverse; gap: 0.5rem; } .pui-textarea textarea { outline: none; background-color: transparent; width: 100%; overflow: hidden; box-sizing: border-box; resize: vertical; border-radius: var(--border-radius-base); } .pui-textarea textarea:disabled { opacity: 0.3; cursor: not-allowed; } .pui-textarea .pui-textarea-counter { position: absolute; bottom: -1.25rem; right: 0; font-size: 0.75rem; } .pui-textarea .pui-textarea-counter.pui-textarea-counter--warning { color: var(--warning); } .pui-textarea .pui-textarea-counter.pui-textarea-counter--danger { color: var(--error-50); } /*# sourceMappingURL=form.css.map*/