diff --git a/components/mucus.js b/components/mucus.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2d643d855b51fd3bfe55cb0d3725a6e96b53816
--- /dev/null
+++ b/components/mucus.js
@@ -0,0 +1,155 @@
+import React, { Component } from 'react'
+import {
+  View,
+  Button,
+  Text,
+  Switch
+} from 'react-native'
+import RadioForm from 'react-native-simple-radio-button'
+import { saveMucus } from '../db'
+import styles from '../styles/index'
+import {
+  mucusFeeling as feelingLabels,
+  mucusTexture as textureLabels
+} from '../labels/labels'
+
+export default class Mucus extends Component {
+  constructor(props) {
+    super(props)
+    this.cycleDay = props.cycleDay
+    this.showView = props.showView
+
+    let currentFeelingValue = this.cycleDay.mucus && this.cycleDay.mucus.feeling
+    if (typeof currentFeelingValue !== 'number') {
+      currentFeelingValue = -1
+    }
+    let currentTextureValue = this.cycleDay.mucus && this.cycleDay.mucus.texture
+    if (typeof currentTextureValue !== 'number') {
+      currentTextureValue = -1
+    }
+
+    this.state = {
+      currentFeelingValue,
+      currentTextureValue,
+      exclude: this.cycleDay.mucus ? this.cycleDay.mucus.exclude : false
+    }
+
+  }
+
+  render() {
+    const mucusFeelingRadioProps = [
+      {label: feelingLabels[0], value: 0 },
+      {label: feelingLabels[1], value: 1 },
+      {label: feelingLabels[2], value: 2 },
+      {label: feelingLabels[3], value: 3 }
+    ]
+    const mucusTextureRadioProps = [
+      {label: textureLabels[0], value: 0 },
+      {label: textureLabels[1], value: 1 },
+      {label: textureLabels[2], value: 2 }
+    ]
+    return(
+      <View style={ styles.symptomEditView }>
+        <View style={ styles.symptomEditSplitSymptomsAndLastRowButtons }>
+          <View style={ styles.symptomEditListedSymptomView }>
+
+            <View style={{flex: 1}}>
+              <Text style={styles.symptomDayView}>Mucus</Text>
+            </View>
+
+            <View style={{flex: 1}}>
+              <Text style={styles.symptomDayView}>Feeling</Text>
+            </View>
+
+            <View style={{flex: 1}}>
+              <RadioForm
+                radio_props={mucusFeelingRadioProps}
+                initial={this.state.currentFeelingValue}
+                formHorizontal={true}
+                labelHorizontal={false}
+                labelStyle={styles.radioButton}
+                onPress={(itemValue) => {
+                  this.setState({currentFeelingValue: itemValue})
+                }}
+              />
+            </View>
+
+            <View style={{flex: 1}}>
+              <Text style={styles.symptomDayView}>Color/Texture</Text>
+            </View>
+
+            <View style={{flex: 1}}>
+              <RadioForm
+                radio_props={mucusTextureRadioProps}
+                initial={this.state.currentTextureValue}
+                formHorizontal={true}
+                labelHorizontal={false}
+                labelStyle={styles.radioButton}
+                onPress={(itemValue) => {
+                  this.setState({currentTextureValue: itemValue})
+                }}
+              />
+            </View>
+
+          </View>
+
+          <View style={ styles.itemsInRowSeparatedView }>
+
+            <View style={ styles.singleButtonView }>
+              <Text style={ styles.symptomDayView }>Exclude</Text>
+            </View>
+
+            <View style={ styles.singleButtonView }>
+              <Switch
+                onValueChange={(val) => {
+                  this.setState({exclude: val})
+                }}
+                value={this.state.exclude}
+              />
+            </View>
+
+          </View>
+
+        </View>
+
+        <View style={ styles.itemsInRowSeparatedView }>
+
+          <View style={ styles.singleButtonView }>
+            <Button
+              onPress={() => this.showView('dayView')}
+              title="Cancel">
+            </Button>
+          </View>
+
+          <View style={ styles.singleButtonView }>
+            <Button
+              onPress={() => {
+                saveMucus(this.cycleDay)
+                this.showView('dayView')
+              }}
+              title="Delete">
+            </Button>
+          </View>
+
+          <View style={ styles.singleButtonView }>
+            <Button
+              onPress={() => {
+                saveMucus(this.cycleDay, {
+                  feeling: this.state.currentFeelingValue,
+                  texture: this.state.currentTextureValue,
+                  exclude: this.state.exclude
+                })
+                this.showView('dayView')
+              }}
+              // FIXME: find out how disabled works when 2 values need to be checked
+              disabled={ this.state.currentFeelingValue === -1 || this.state.currentTextureValue === -1 }
+              title="Save">
+            </Button>
+          </View>
+
+        </View>
+
+      </View>
+    )
+  }
+}