@gechiui/components
Version:
UI components for GeChiUI.
124 lines (103 loc) • 2.72 kB
text/typescript
/**
* External dependencies
*/
import styled from '@emotion/styled';
/**
* Internal dependencies
*/
import NumberControl from '../number-control';
import InnerSelectControl from '../select-control';
import InnerRangeControl from '../range-control';
import { StyledField } from '../base-control/styles/base-control-styles';
import { space } from '../ui/utils/space';
import Button from '../button';
import {
BackdropUI,
Container as InputControlContainer,
Input,
} from '../input-control/styles/input-control-styles';
import InputControl from '../input-control';
import CONFIG from '../utils/config-values';
export const NumberControlWrapper = styled( NumberControl )`
${ InputControlContainer } {
width: ${ space( 24 ) };
}
`;
export const SelectControl = styled( InnerSelectControl )`
margin-left: ${ space( -2 ) };
width: 5em;
${ BackdropUI } {
display: none;
}
`;
export const RangeControl = styled( InnerRangeControl )`
flex: 1;
${ StyledField } {
margin-bottom: 0;
}
`;
// All inputs should be the same height so this should be changed at the component level.
// That involves changing heights of multiple input types probably buttons too etc.
// So until that is done we are already using the new height on the color picker so it matches the mockups.
const inputHeightStyle = `
&&& ${ Input } {
height: 40px;
}`;
// Make the Hue circle picker not go out of the bar
const interactiveHueStyles = `
.react-colorful__interactive {
width: calc( 100% - ${ space( 2 ) } );
margin-left: ${ space( 1 ) };
}`;
export const AuxiliaryColorArtefactWrapper = styled.div`
padding: ${ space( 2 ) } ${ space( 4 ) };
`;
export const ColorfulWrapper = styled.div`
width: 216px;
.react-colorful {
display: flex;
flex-direction: column;
align-items: center;
width: 216px;
height: auto;
}
.react-colorful__saturation {
width: 100%;
border-radius: 0;
height: 216px;
margin-bottom: ${ space( 4 ) };
border-bottom: none;
}
.react-colorful__hue,
.react-colorful__alpha {
width: 184px;
height: 16px;
border-radius: 16px;
margin-bottom: ${ space( 2 ) };
}
.react-colorful__pointer {
height: 16px;
width: 16px;
border: none;
box-shadow: 0 0 2px 0 rgba( 0, 0, 0, 0.25 );
// Shown instead of box-shadow to Windows high contrast mode.
outline: 2px solid transparent;
}
.react-colorful__pointer-fill {
box-shadow: inset 0 0 0 ${ CONFIG.borderWidthFocus } #fff;
}
${ interactiveHueStyles }
${ StyledField } {
margin-bottom: 0;
}
${ inputHeightStyle }
`;
export const DetailsControlButton = styled( Button )`
&&&&& {
min-width: ${ space( 6 ) };
padding: 0;
}
`;
export const ColorHexInputControl = styled( InputControl )`
width: 8em;
`;