diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/gameBar.tsx | 88 | ||||
-rw-r--r-- | src/components/page.tsx | 6 | ||||
-rw-r--r-- | src/components/ui.tsx | 3 |
3 files changed, 94 insertions, 3 deletions
diff --git a/src/components/gameBar.tsx b/src/components/gameBar.tsx new file mode 100644 index 0000000..53eda88 --- /dev/null +++ b/src/components/gameBar.tsx @@ -0,0 +1,88 @@ +import { CSSProperties, ReactNode } from 'react'; +import { Vierkant } from './ui'; + +import SettingsRoundedIcon from '@material-ui/icons/SettingsRounded'; +import ExitToAppRoundedIcon from '@material-ui/icons/ExitToAppRounded'; +import NavigateNextRoundedIcon from '@material-ui/icons/NavigateNextRounded'; +import NavigateBeforeRoundedIcon from '@material-ui/icons/NavigateBeforeRounded'; + +interface GameBarModuleProps { + children?: ReactNode; +} + +function GameBarModule(props: GameBarModuleProps) { + return <Vierkant style={{ + backgroundColor: "var(--background-alt)", + padding: 12, + borderRadius: 6, + margin: 0, + verticalAlign: "top" + }}>{props.children}</Vierkant> +} + +var GameBarSpacer = () => <div style={{ width: 8, display: "inline-block" }}></div>; + +var GameBarAlignStyle: CSSProperties = { + display: "inline-block" +} + +export function GameBar() { + return <Vierkant className="gameBar" style={{ + padding: 8, + width: "calc(100% - 12px)" + }}> + <div style={{ gridAutoColumns: "auto" }}> + <div style={{ ...GameBarAlignStyle, float: "left" }}> + <div style={{ + width: 32, height: 32, + margin: 8, + backgroundColor: "var(--disk-b)", + borderRadius: 16, + display: "inline-block" + }}/> + <h2 style={{ + fontSize: 20, + margin: 12, + verticalAlign: "top", + display: "inline-block" + }}>Tegenstander</h2> + </div> + <div style={{ + ...GameBarAlignStyle, + position: "absolute", + top: "50%", left: "50%", + transform: "translate(-50%, -50%)" + }}> + <span style={{ + color: "var(--text)", + fontSize: 20, + opacity: .75 + }}>0-0</span> + </div> + <div style={{ ...GameBarAlignStyle, float: "right" }}> + <GameBarModule> + <SettingsRoundedIcon/> + </GameBarModule> + <GameBarSpacer/> + <GameBarModule> + <span style={{ + margin: "0 4px", + fontSize: 20 + }}>00:00</span> + </GameBarModule> + <GameBarSpacer/> + <GameBarModule> + <ExitToAppRoundedIcon/> + </GameBarModule> + <GameBarSpacer/> + <GameBarModule> + <NavigateBeforeRoundedIcon/> + </GameBarModule> + <GameBarSpacer/> + <GameBarModule> + <NavigateNextRoundedIcon/> + </GameBarModule> + </div> + </div> + </Vierkant>; +} diff --git a/src/components/page.tsx b/src/components/page.tsx index 73981c2..37634a3 100644 --- a/src/components/page.tsx +++ b/src/components/page.tsx @@ -1,8 +1,9 @@ -import { Component, ReactNode } from 'react'; +import { Component, CSSProperties, ReactNode } from 'react'; interface CenteredPageProps { width?: number; children?: ReactNode; + style?: CSSProperties; } export function CenteredPage (props: CenteredPageProps) { @@ -12,7 +13,8 @@ export function CenteredPage (props: CenteredPageProps) { }}> <div className="CenteredPageInner" style={{ margin: "0 6px", - lineHeight: 0 + lineHeight: 0, + ...props.style }}>{props.children}</div> </div>; } diff --git a/src/components/ui.tsx b/src/components/ui.tsx index 27d98cd..4b4b489 100644 --- a/src/components/ui.tsx +++ b/src/components/ui.tsx @@ -8,6 +8,7 @@ interface VierkantProps { height?: string; style?: CSSProperties; children?: ReactNode; + className?: string; } export function Vierkant(props: VierkantProps) { @@ -23,7 +24,7 @@ export function Vierkant(props: VierkantProps) { width: props.width ? props.width : undefined, height: props.height ? props.height : undefined, ...props.style - }} href={props.href}>{props.children}</a> + }} href={props.href} className={props.className}>{props.children}</a> } interface ButtonProps { |