266 lines
5.9 KiB
TypeScript
266 lines
5.9 KiB
TypeScript
import styled, { css } from 'styled-components';
|
|
import TextareaAutosize from 'react-autosize-textarea';
|
|
import { mixin } from 'shared/utils/styles';
|
|
import Button from 'shared/components/Button';
|
|
import { Taskcafe } from 'shared/icons';
|
|
import { NavLink, Link } from 'react-router-dom';
|
|
import TaskAssignee from 'shared/components/TaskAssignee';
|
|
export const ProjectMember = styled(TaskAssignee)<{ zIndex: number }>`
|
|
z-index: ${props => props.zIndex};
|
|
position: relative;
|
|
|
|
box-shadow: 0 0 0 2px rgba(16, 22, 58), inset 0 0 0 1px rgba(16, 22, 58, 0.07);
|
|
`;
|
|
|
|
export const NavbarWrapper = styled.div`
|
|
width: 100%;
|
|
`;
|
|
|
|
export const ProjectMembers = styled.div`
|
|
display: flex;
|
|
align-items: center;
|
|
`;
|
|
export const NavbarHeader = styled.header`
|
|
height: 80px;
|
|
padding: 0 1.75rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
background: rgb(16, 22, 58);
|
|
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.05);
|
|
border-bottom: 1px solid rgba(65, 69, 97, 0.65);
|
|
`;
|
|
export const Breadcrumbs = styled.div`
|
|
color: rgb(94, 108, 132);
|
|
font-size: 15px;
|
|
`;
|
|
export const BreadcrumpSeparator = styled.span`
|
|
position: relative;
|
|
top: 2px;
|
|
font-size: 18px;
|
|
margin: 0px 10px;
|
|
`;
|
|
|
|
export const ProjectActions = styled.div`
|
|
flex: 1;
|
|
align-items: flex-start;
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 1px;
|
|
`;
|
|
|
|
export const GlobalActions = styled.div`
|
|
display: flex;
|
|
align-items: center;
|
|
`;
|
|
|
|
export const ProfileContainer = styled.div`
|
|
display: flex;
|
|
align-items: center;
|
|
`;
|
|
|
|
export const ProfileNameWrapper = styled.div`
|
|
text-align: right;
|
|
line-height: 1.25;
|
|
`;
|
|
|
|
export const IconContainer = styled.div<{ disabled?: boolean }>`
|
|
margin-right: 20px;
|
|
cursor: pointer;
|
|
${props =>
|
|
props.disabled &&
|
|
css`
|
|
opacity: 0.5;
|
|
cursor: default;
|
|
pointer-events: none;
|
|
`}
|
|
`;
|
|
|
|
export const ProfileNamePrimary = styled.div`
|
|
color: #c2c6dc;
|
|
font-weight: 600;
|
|
`;
|
|
|
|
export const ProfileNameSecondary = styled.small`
|
|
color: #c2c6dc;
|
|
`;
|
|
|
|
export const ProfileIcon = styled.div<{ bgColor: string | null; backgroundURL: string | null }>`
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 9999px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #fff;
|
|
font-weight: 700;
|
|
background: ${props => (props.backgroundURL ? `url(${props.backgroundURL})` : props.bgColor)};
|
|
background-position: center;
|
|
background-size: contain;
|
|
`;
|
|
|
|
export const ProjectMeta = styled.div<{ nameOnly?: boolean }>`
|
|
display: flex;
|
|
${props => !props.nameOnly && 'padding-top: 9px;'}
|
|
margin-left: -14px;
|
|
align-items: center;
|
|
max-width: 100%;
|
|
min-height: 51px;
|
|
`;
|
|
|
|
export const ProjectTabs = styled.div`
|
|
align-items: flex-end;
|
|
align-self: stretch;
|
|
display: flex;
|
|
flex: 1 0 auto;
|
|
justify-content: flex-start;
|
|
max-width: 100%;
|
|
`;
|
|
|
|
export const ProjectTab = styled(NavLink)`
|
|
font-size: 80%;
|
|
color: rgba(${props => props.theme.colors.text.primary});
|
|
font-size: 15px;
|
|
cursor: pointer;
|
|
display: flex;
|
|
line-height: normal;
|
|
min-width: 1px;
|
|
transition-duration: 0.2s;
|
|
transition-property: box-shadow, color;
|
|
white-space: nowrap;
|
|
flex: 0 1 auto;
|
|
padding-bottom: 12px;
|
|
|
|
&:not(:last-child) {
|
|
margin-right: 20px;
|
|
}
|
|
|
|
&:hover {
|
|
box-shadow: inset 0 -2px rgba(${props => props.theme.colors.text.secondary});
|
|
color: rgba(${props => props.theme.colors.text.secondary});
|
|
}
|
|
|
|
&.active {
|
|
box-shadow: inset 0 -2px rgba(${props => props.theme.colors.secondary});
|
|
color: rgba(${props => props.theme.colors.secondary});
|
|
}
|
|
&.active:hover {
|
|
box-shadow: inset 0 -2px rgba(${props => props.theme.colors.secondary});
|
|
color: rgba(${props => props.theme.colors.secondary});
|
|
}
|
|
`;
|
|
|
|
export const ProjectName = styled.h1`
|
|
color: rgba(${props => props.theme.colors.text.primary});
|
|
font-weight: 600;
|
|
font-size: 20px;
|
|
padding: 3px 10px 3px 8px;
|
|
margin: -4px 0;
|
|
`;
|
|
export const ProjectNameTextarea = styled(TextareaAutosize)`
|
|
border: none;
|
|
resize: none;
|
|
overflow: hidden;
|
|
overflow-wrap: break-word;
|
|
background: transparent;
|
|
border-radius: 3px;
|
|
box-shadow: none;
|
|
margin: -4px 0;
|
|
|
|
letter-spacing: normal;
|
|
word-spacing: normal;
|
|
text-transform: none;
|
|
text-indent: 0px;
|
|
text-shadow: none;
|
|
flex-direction: column;
|
|
text-align: start;
|
|
|
|
color: #c2c6dc;
|
|
font-weight: 600;
|
|
font-size: 20px;
|
|
padding: 3px 10px 3px 8px;
|
|
&:focus {
|
|
box-shadow: rgb(115, 103, 240) 0px 0px 0px 1px;
|
|
}
|
|
`;
|
|
|
|
export const ProjectSwitcher = styled.button`
|
|
font-size: 20px;
|
|
|
|
outline: none;
|
|
border: none;
|
|
width: 100px;
|
|
border-radius: 3px;
|
|
line-height: 20px;
|
|
padding: 6px 4px;
|
|
background-color: none;
|
|
text-align: center;
|
|
color: #c2c6dc;
|
|
cursor: pointer;
|
|
&:hover {
|
|
background: rgb(115, 103, 240);
|
|
}
|
|
`;
|
|
|
|
export const Separator = styled.div`
|
|
color: #c2c6dc;
|
|
font-size: 20px;
|
|
padding-left: 4px;
|
|
padding-right: 4px;
|
|
`;
|
|
|
|
export const ProjectSettingsButton = styled.button`
|
|
outline: none;
|
|
border: none;
|
|
border-radius: 3px;
|
|
line-height: 20px;
|
|
width: 28px;
|
|
height: 28px;
|
|
background-color: none;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
&:hover {
|
|
background: rgb(115, 103, 240);
|
|
}
|
|
`;
|
|
|
|
export const InviteButton = styled(Button)`
|
|
margin: 0 0 0 8px;
|
|
padding: 6px 12px;
|
|
`;
|
|
|
|
export const ProjectFinder = styled(Button)`
|
|
margin-right: 20px;
|
|
padding: 6px 12px;
|
|
`;
|
|
|
|
export const NavSeparator = styled.div`
|
|
width: 1px;
|
|
background: rgba(${props => props.theme.colors.border});
|
|
height: 34px;
|
|
margin: 0 20px;
|
|
`;
|
|
|
|
export const LogoContainer = styled(Link)`
|
|
display: block;
|
|
left: 50%;
|
|
position: absolute;
|
|
transform: translateX(-50%);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
`;
|
|
|
|
export const TaskcafeTitle = styled.h2`
|
|
margin-left: 5px;
|
|
color: rgba(${props => props.theme.colors.text.primary});
|
|
font-size: 20px;
|
|
`;
|
|
|
|
export const TaskcafeLogo = styled(Taskcafe)`
|
|
fill: rgba(${props => props.theme.colors.text.primary});
|
|
stroke: rgba(${props => props.theme.colors.text.primary});
|
|
`;
|