@heycar-uikit/core
Version:
The React UI library from HeyCar
347 lines (316 loc) • 7.28 kB
CSS
:root {
/* heycar mint color */
/* mica blue color */
--color-mica-blue-500: #164ca3;
/* sunbeam blue color */
/* mustang yellow color */
/* old ferrari red color */
/* -- fantasy name of "green" color to be defined -- */
/* -- fantasy name of "whatsapp" color to be defined -- */
/* -- fantasy name of "red" color to be defined -- */
--color-red-500: #eb5757;
/* tarmac grey color */
--color-tarmac-grey-300: #b5b5b5;
--color-tarmac-grey-500: #838383;
--color-tarmac-grey-600: #595959;
--color-tarmac-grey-700: #303030;
/* brand colors */
}
/* Depricated. Do Not Use */
:root {
--spacing-2: 8px;
--spacing-4: 16px;
--spacing-8: 32px;
}
:root {
/* Font families */
--font-family-system: Objektiv, sans-serif, 'Helvetica Neue', Helvetica, Arial;
/* Font weights */
--font-weight-regular: 400;
}
/*
Heading
*/
/*
Sub-Heading
*/
/*
Body
*/
/*
Caption
*/
/*
Overline
*/
/*
Button
*/
/*
Button Old - DO NOT USE
*/
/* If this is ever changed please update breakpoints.json as well */
/* Mobile */
/* Tablet */
/* Desktop */
/* Default theme (light) */
:root {
/*
Colors
*/
--color-primary-500: var(--color-mica-blue-500);
--color-error-500: var(--color-red-500);
--color-neutral-300: var(--color-tarmac-grey-300);
--color-neutral-500: var(--color-tarmac-grey-500);
--color-neutral-600: var(--color-tarmac-grey-600);
--color-neutral-700: var(--color-tarmac-grey-700);
/*
Sizes
*/
}
body {
color: var(--color-neutral-700);
}
:root {
/* Color - base */
--form-control-base-border-color: var(--color-neutral-500);
--form-control-hover-border-color: var(--color-neutral-600);
--form-control-focused-border-color: var(--color-primary-500);
--form-control-filled-border-color: var(--color-neutral-500);
--form-control-label-color: var(--color-neutral-700);
--form-control-hint-color: var(--color-neutral-700);
--form-control-icon-color: var(--color-neutral-700);
/* Color - error */
--form-control-error-color: var(--color-error-500);
/* Color - disabled */
--form-control-disabled-bg-color: var(--color-neutral-300);
--form-control-disabled-color: var(--color-neutral-300);
/* Sizes */
--form-control-min-height: 48px;
--from-control-legend-height: 11px;
--form-control-input-padding: 0;
--form-control-hint-fint-size: 10px;
}
.component {
font-family: var(--font-family-system);
width: max-content;
color: var(--form-control-icon-color);
}
.component:after {
content: '';
display: block;
clear: both;
}
.component .inner {
min-height: var(--form-control-min-height);
}
.component.hasLeftIcon .label {
left: var(--spacing-2);
}
.component.hasLeftIcon .filled .label {
transform: translateY(
calc(
(
(
var(--form-control-min-height) / 2 +
var(--from-control-legend-height) / 1.9
) * -1
)
)
)
translateX(calc(var(--spacing-8) * -1));
}
.component .label {
color: var(--form-control-label-color);
height: var(--from-control-legend-height);
top: calc(var(--form-control-min-height) / 2);
z-index: 1;
}
.component .hint {
color: var(--form-control-hint-color);
}
/*
Disabled
*/
.component.disabled {
color: var(--form-control-disabled-color);
}
.component.disabled .inner .fieldset, .component.disabled .inner:hover .fieldset {
border-color: var(--form-control-disabled-bg-color);
}
.component.disabled .inner .label, .component.disabled .inner:hover .label {
color: var(--form-control-disabled-color);
}
.component.disabled .hint {
color: var(--form-control-disabled-color);
}
/*
Error
*/
.component.hasError .inner .fieldset, .component.hasError:hover .inner .fieldset {
border-color: var(--form-control-error-color);
}
.component .inner.focused .fieldset {
border-color: var(--form-control-focused-border-color);
}
.component .filled .fieldset {
border-color: var(--form-control-filled-border-color);
border-width: 1px;
}
.component .filled .legend {
float: none;
overflow: hidden;
display: block;
padding: 0;
height: 11px;
font-size: 0.75em;
visibility: hidden;
max-width: 100%;
white-space: nowrap;
}
.component .filled .label {
transform: translateY(
calc(
(
var(--form-control-min-height) / 2 +
var(--from-control-legend-height) / 1.9
) * -1
)
);
font-size: 12px;
line-height: 18px;
font-weight: var(--font-weight-regular);
font-family: var(--font-family-system);
}
.inner {
display: flex;
position: relative;
min-height: 100%;
-webkit-backdrop-filter: initial;
backdrop-filter: initial;
box-sizing: border-box;
outline: none;
}
.inputWrapper {
flex-grow: 1;
position: relative;
}
.input {
height: 100%;
display: flex;
align-items: center;
position: relative;
box-sizing: border-box;
padding: var(--form-control-input-padding);
}
/*
Label
*/
.label {
position: absolute;
display: flex;
align-items: center;
left: var(--spacing-4);
right: 0;
transform-origin: left top;
transform: translateY(-50%);
transition: transform 130ms cubic-bezier(0.4, 0, 0.2, 1),
font-size 130ms cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
font-size: 16px;
font-weight: var(--font-weight-regular);
font-family: var(--font-family-system);
line-height: 23px;
}
.label .labelInner {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/*
Full width
*/
.fullWidth {
width: 100%;
}
/*
Addons
*/
.addons {
display: flex;
flex-shrink: 0;
align-items: center;
}
.leftIcon {
padding-left: var(--spacing-4);
}
.rightIcon {
padding-right: var(--spacing-2);
}
.rightAddons {
padding-right: var(--spacing-4);
}
/*
Focus state
*/
.focused:not(.disabled):before,
.hasError:before {
transform: scaleY(2);
}
/*
Hint
*/
.sub {
display: block;
padding-left: var(--spacing-4);
font-size: 10px;
font-weight: var(--font-weight-regular);
font-family: var(--font-family-system);
font-size: var(--form-control-hint-fint-size);
}
/*
Error state
*/
.error {
color: var(--form-control-error-color);
}
.inner:hover .fieldset {
border-color: var(--form-control-hover-border-color);
}
.fieldset {
text-align: left;
position: absolute;
inset: -6px -1px -1px;
margin: 0;
padding: 0 12px;
pointer-events: none;
transition: border 0.1s ease;
border-radius: inherit;
border-style: solid;
border-width: 1px;
border-color: var(--form-control-base-border-color);
overflow: hidden;
min-width: 0%;
}
.legend {
float: none;
float: initial;
overflow: hidden;
display: block;
width: auto;
padding: 0;
height: var(--from-control-legend-height);
font-size: 0.75em;
visibility: hidden;
max-width: 0.01px;
transition: max-width 50ms cubic-bezier(0, 0, 0.2, 1) 0ms;
white-space: nowrap;
}
.legend > span {
padding-left: 5px;
padding-right: 4px;
display: inline-block;
opacity: 0;
visibility: visible;
}