diff options
-rw-r--r-- | src/components/InputTypes/Radio.tsx | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/components/InputTypes/Radio.tsx b/src/components/InputTypes/Radio.tsx index be0f60e..3bf13ed 100644 --- a/src/components/InputTypes/Radio.tsx +++ b/src/components/InputTypes/Radio.tsx @@ -1,6 +1,8 @@ /** @jsx jsx */ import { jsx, css } from "@emotion/react"; import React, { ChangeEvent } from "react"; +import colors from "../../colors"; +import { multiSelectInput, hiddenInput } from "../../commonStyles"; interface RadioProps { option: string, @@ -8,10 +10,29 @@ interface RadioProps { handler: (event: ChangeEvent<HTMLInputElement>) => void } +const styles = css` + div { + width: 0.7em; + height: 0.75em; + top: 0.18rem; + + border-radius: 50%; + } + + :hover div, :focus-within div { + background-color: lightgray; + } + + input:checked+div { + background-color: ${colors.blurple}; + } +`; + export default function Radio(props: RadioProps): JSX.Element { return ( - <label> - <input type="radio" name={props.question_id} css={css`margin: 1rem 0.5rem 0 0;`} onChange={props.handler}/> + <label css={styles}> + <input type="radio" name={props.question_id} onChange={props.handler} css={hiddenInput}/> + <div css={multiSelectInput}/> {props.option}<br/> </label> ); |