You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spa_instat_tv/src/features/MatchSidePlaylists/styled.tsx

255 lines
4.8 KiB

import styled, { css } from 'styled-components/macro'
import {
isIOS,
isMobileDevice,
devices,
} from 'config'
import { customScrollbar } from 'features/Common'
import { T9n } from 'features/T9n'
type WrapperProps = {
highlighted?: boolean,
isHidden?: boolean,
isTourOpen?: boolean,
}
export const Wrapper = styled.div<WrapperProps>`
padding-right: 14px;
padding-top: 10px;
${({ highlighted }) => (highlighted
? css`
border: 1px solid #0057FF;
border-radius: 5px;
box-shadow: 0px 0px 66px 16px rgba(0, 87, 255, 0.8);
`
: '')}
${isMobileDevice
? css`
overflow-y: auto;
width: 100%;
padding: 10px 10px 0;
::-webkit-scrollbar {
display: none;
}
`
: ''};
${({ isHidden }) => (isHidden && isMobileDevice
? css`
padding-top: 50px;`
: '')}
${({ isTourOpen }) => (isTourOpen
? css`
overflow-y: initial;
z-index: 9999;
`
: '')}
`
export const TabsWrapper = styled.div``
export const TabsGroup = styled.div.attrs({ role: 'tablist' })`
display: flex;
justify-content: center;
gap: ${isMobileDevice ? 30 : 20}px;
`
export const TabTitle = styled(T9n)`
font-size: 10px;
font-weight: 500;
text-transform: uppercase;
color: ${({ theme }) => theme.colors.white};
`
export const TabButton = styled.button`
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
padding-left: 0;
padding-right: 0;
opacity: 0.4;
cursor: pointer;
border: none;
background: none;
`
export const Tab = styled.div.attrs({ role: 'tab' })`
position: relative;
&[aria-pressed="true"], :hover {
${TabButton} {
opacity: 1;
${TabTitle} {
font-weight: 600;
}
}
}
:only-child {
cursor: unset;
}
`
type TabIconProps = {
icon: 'watch' | 'plays' | 'players' | 'stats',
}
export const TabIcon = styled.div<TabIconProps>`
width: 22px;
height: 22px;
flex-shrink: 0;
margin-bottom: 5px;
background-image: url(/images/matchTabs/${({ icon }) => `${icon}.svg`});
background-repeat: no-repeat;
background-position: center;
background-size: contain;
${({ icon }) => (icon === 'players'
? css`
background-size: 25px;
`
: '')}
`
type TContainer = {
forWatchTab?: boolean,
hasScroll: boolean,
highlighted?: boolean,
}
export const Container = styled.div<TContainer>`
width: 320px;
margin-top: 14px;
max-height: calc(100vh - 130px);
overflow-y: ${({ forWatchTab }) => (forWatchTab ? 'hidden' : 'auto')};
padding-right: ${({ forWatchTab }) => (forWatchTab ? '0' : '')};
padding-left: 14px;
padding-right: ${({ hasScroll }) => (hasScroll ? '10px' : '')};
${customScrollbar}
@media ${devices.tablet} {
margin-top: 15px;
}
${isMobileDevice
? css`
padding: 0 5px;
padding-bottom: ${isIOS ? 60 : 78}px;
overflow-y: hidden;
max-height: initial;
@media (max-width: 750px){
width: 100%;
}
@media (orientation: landscape){
width: 100%;
}
`
: ''};
${({ highlighted }) => (highlighted
? css`
overflow-y: initial;
`
: '')}
`
type ButtonProps = {
active?: boolean,
}
export const Button = styled.button<ButtonProps>`
border: none;
outline: none;
position: relative;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: ${({ theme }) => theme.colors.playerActionBtnBackground};
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3);
border-radius: 2px;
${({ disabled }) => (
disabled
? css`
pointer-events: none;
opacity: 0.5;
`
: css`
cursor: pointer;
`
)}
:hover {
background-color: #555555;
}
span {
pointer-events: none;
}
@media ${devices.mobile} {
justify-content: center;
border-radius: 1.8px;
}
${({ active, theme }) => {
const bgColor = theme.colors.button
const bgHoverColor = theme.colors.buttonHover
return active ? css`
background-color: ${bgColor};
&:hover {
background-color: ${bgHoverColor};
}
` : ''
}}
`
export const DownloadButton = styled(Button)`
:hover {
background-color: ${({ theme }) => theme.colors.buttonHover};
}
${({ active }) => (active
? css`
border: 1px solid #FFFFFF;
border-radius: 2px;
background-color: black;
`
: '')}
`
export const Title = styled.span`
font-weight: 600;
font-size: 14px;
max-width: 55%;
line-height: 16px;
color: #ffffff;
overflow: hidden;
white-space: nowrap;
text-overflow:ellipsis;
`
export const BlockTitle = styled.span`
font-weight: 600;
font-size: 12px;
line-height: 18px;
text-align: start;
color: rgba(255, 255, 255, 0.5);
text-transform: uppercase;
`