joyent-portal/packages/ui-toolkit/src/topology/node/shapes.js

128 lines
2.4 KiB
JavaScript

import styled from 'styled-components';
import is, {isNot} from 'styled-is';
import typography from '../../typography';
export const GraphLine = styled.line`
stroke: ${props => props.theme.secondaryActive};
stroke-width: 1.5;
${is('consul')`
stroke: ${props => props.theme.grey};
`};
${isNot('active')`
stroke: ${props => props.theme.grey};
`};
`;
export const GraphNodeRect = styled.rect`
stroke: ${props => props.theme.secondaryActive};
fill: ${props => props.theme.secondary};
stroke-width: 1.5;
rx: 4;
ry: 4;
${is('consul')`
stroke: ${props => props.theme.grey};
fill: ${props => props.theme.white};
`};
${isNot('active')`
stroke: ${props => props.theme.grey};
fill: ${props => props.theme.whiteActive};
`};
${is('connected')`
cursor: move;
`};
`;
export const GraphShadowRect = styled.rect`
fill: ${props => props.theme.secondary};
opacity: 0.33;
rx: 4;
ry: 4;
${is('consul')`
fill: ${props => props.theme.grey};
`};
`;
export const GraphTitle = styled.text`
${typography.fontFamily};
${typography.normal};
fill: ${props => props.theme.white};
font-size: 16px;
font-weight: 600;
${is('consul')`
fill: ${props => props.theme.secondary};
`};
${isNot('active')`
fill: ${props => props.theme.secondary};
`};
cursor: pointer;
`;
export const GraphSubtitle = styled.text`
${typography.fontFamily};
${typography.normal};
fill: ${props => props.theme.white};
font-size: 12px;
font-weight: 600;
${is('consul')`
fill: ${props => props.theme.secondary};
`};
${isNot('active')`
fill: ${props => props.theme.secondary};
`};
`;
export const GraphText = styled.text`
${typography.fontFamily};
${typography.normal};
fill: ${props => props.theme.white};
font-size: 12px;
opacity: 0.8;
${is('consul')`
fill: ${props => props.theme.secondary};
`};
${isNot('active')`
fill: ${props => props.theme.secondary};
`};
`;
export const GraphButtonRect = styled.rect`
opacity: 0;
cursor: pointer;
&:focus {
outline: none;
}
`;
export const GraphButtonCircle = styled.circle`
fill: ${props => props.theme.white};
${is('consul')`
fill: ${props => props.theme.secondary};
`};
${isNot('active')`
fill: ${props => props.theme.secondary};
`};
`;
export const GraphHealthyCircle = styled.circle`
fill: ${props => props.theme.green};
`;