diff --git a/web/components/button.tsx b/web/components/button.tsx
new file mode 100644
index 00000000..eeb9c69e
--- /dev/null
+++ b/web/components/button.tsx
@@ -0,0 +1,32 @@
+export function Button(props: {
+ className?: string
+ onClick?: () => void
+ color: 'green' | 'red' | 'deemphasized'
+ hideFocusRing?: boolean
+ children?: any
+}) {
+ const { className, onClick, children, color, hideFocusRing } = props
+
+ return (
+
+ )
+}
+
+function classNames(...classes: any[]) {
+ return classes.filter(Boolean).join(' ')
+}
diff --git a/web/components/yes-no-selector.tsx b/web/components/yes-no-selector.tsx
new file mode 100644
index 00000000..d83a04c3
--- /dev/null
+++ b/web/components/yes-no-selector.tsx
@@ -0,0 +1,34 @@
+import React from 'react'
+import { Button } from './button'
+import { Row } from './layout/row'
+
+export function YesNoSelector(props: {
+ selected: 'yes' | 'no'
+ onSelect: (selected: 'yes' | 'no') => void
+ yesLabel?: string
+ noLabel?: string
+ className?: string
+}) {
+ const { selected, onSelect, yesLabel, noLabel, className } = props
+
+ return (
+
+
+
+
+
+ )
+}