aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/components/Inputs/Dropdown.js
diff options
context:
space:
mode:
authorjackyzha0 <[email protected]>2021-03-05 23:12:28 -0800
committerjackyzha0 <[email protected]>2021-03-05 23:12:28 -0800
commit7a671bc96ef06df3da3d2dce3caca559f32c6627 (patch)
tree9af8330b8a8dd2a84f07d8c8d75a6245ce84b2dc /frontend/src/components/Inputs/Dropdown.js
parentrefactoring css (diff)
downloadctrl-v-7a671bc96ef06df3da3d2dce3caca559f32c6627.tar.xz
ctrl-v-7a671bc96ef06df3da3d2dce3caca559f32c6627.zip
text area styling
Diffstat (limited to 'frontend/src/components/Inputs/Dropdown.js')
-rw-r--r--frontend/src/components/Inputs/Dropdown.js57
1 files changed, 49 insertions, 8 deletions
diff --git a/frontend/src/components/Inputs/Dropdown.js b/frontend/src/components/Inputs/Dropdown.js
index c467408..a3f3b48 100644
--- a/frontend/src/components/Inputs/Dropdown.js
+++ b/frontend/src/components/Inputs/Dropdown.js
@@ -1,8 +1,50 @@
import Dropdown from "react-dropdown";
import FloatingLabel from "../decorators/FloatingLabel";
import React from "react";
+import styled from 'styled-components';
import {LANGS, THEMES} from "../renderers/Code";
-import {FlexChild} from "./shared";
+import {Labelled} from "./shared";
+import {Border, InputLike, Rounded} from "../Form/mixins";
+
+const StyledDropdown = styled(Dropdown)`
+ ${Border}
+ ${Rounded}
+ ${InputLike}
+ cursor: pointer;
+
+ & .Dropdown-root {
+ cursor: pointer;
+
+ &:hover, &.is-open {
+ opacity: 1;
+ }
+
+ & + label {
+ opacity: 1;
+ top: -0.1em;
+ }
+ }
+
+ & .Dropdown-placeholder {
+ width: 5.5em;
+ }
+
+ & .Dropdown-menu {
+ border-top: 1px solid ${p => p.theme.colors.text};
+ margin-top: 0.5em;
+ bottom: auto;
+ }
+
+ & .Dropdown-option {
+ margin-top: 0.5em;
+ transition: all 0.5s cubic-bezier(.25,.8,.25,1);
+
+ &:hover {
+ font-weight: 700;
+ opacity: 0.4;
+ }
+ }
+`
const GenericDropdown = (props) => {
function _onSelect(option) {
@@ -15,18 +57,17 @@ const GenericDropdown = (props) => {
}
return (
- <FlexChild>
- <Dropdown
+ <Labelled
+ label={props.label}
+ id={props.id}
+ value={props.value}>
+ <StyledDropdown
options={props.options}
onChange={_onSelect}
value={props.value}
placeholder={props.placeholder}
id={props.id} />
- <FloatingLabel
- label={props.label}
- id={props.id}
- value={props.value} />
- </FlexChild>
+ </Labelled>
);
}