diff --git a/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java b/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
index 947d35e..45c4eed 100644
--- a/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
+++ b/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
@@ -86,8 +86,12 @@
         });
 
     SlidingTabLayout tabs = ((SlidingTabLayout) v(R.id.tabs));
+    tabs.setTextColor(widgetUtil.color(R.color.tab));
     tabs.setSelectedIndicatorColors(widgetUtil.color(R.color.tab));
+    tabs.setBorderColor(widgetUtil.color(R.color.tab));
     tabs.setDividerColors(widgetUtil.color(R.color.tabDivider));
+    tabs.setBottomBorderThickness(widgetUtil.dpToPx(1));
+    tabs.setSelectedIndicatorThickness(widgetUtil.dpToPx(5));
     tabs.setViewPager(pager);
   }
 }
diff --git a/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java b/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
index 61e9ef5..20904e4 100644
--- a/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
+++ b/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
@@ -74,6 +74,8 @@
     private int mTabViewLayoutId;
     private int mTabViewTextViewId;
 
+    private int mTextColor = -1;
+
     private ViewPager mViewPager;
     private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
 
@@ -128,6 +130,22 @@
         mTabStrip.setDividerColors(colors);
     }
 
+    public void setTextColor(int color) {
+        mTextColor = color;
+    }
+
+    public void setBorderColor(int color) {
+        mTabStrip.setBorderColor(color);
+    }
+
+    public void setBottomBorderThickness(int bottomBorderThickness) {
+        mTabStrip.setBottomBorderThickness(bottomBorderThickness);
+    }
+
+    public void setSelectedIndicatorThickness(int selectedIndicatorThickness) {
+        mTabStrip.setSelectedIndicatorThickness(selectedIndicatorThickness);
+    }
+
     /**
      * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are
      * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so
@@ -218,6 +236,10 @@
             }
 
             tabTitleView.setText(adapter.getPageTitle(i));
+            if (mTextColor != -1) {
+                tabTitleView.setTextColor(mTextColor);
+            }
+
             tabView.setOnClickListener(tabClickListener);
 
             mTabStrip.addView(tabView);
diff --git a/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java b/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
index c8b9701..817cfc4 100644
--- a/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
+++ b/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
@@ -37,10 +37,10 @@
     private static final byte DEFAULT_DIVIDER_COLOR_ALPHA = 0x20;
     private static final float DEFAULT_DIVIDER_HEIGHT = 0.5f;
 
-    private final int mBottomBorderThickness;
+    private int mBottomBorderThickness;
     private final Paint mBottomBorderPaint;
 
-    private final int mSelectedIndicatorThickness;
+    private int mSelectedIndicatorThickness;
     private final Paint mSelectedIndicatorPaint;
 
     private final int mDefaultBottomBorderColor;
@@ -107,6 +107,21 @@
         invalidate();
     }
 
+    void setBorderColor(int color) {
+        mBottomBorderPaint.setColor(color);
+        invalidate();
+    }
+
+    void setBottomBorderThickness(int bottomBorderThickness) {
+        mBottomBorderThickness = bottomBorderThickness;
+        invalidate();
+    }
+
+    void setSelectedIndicatorThickness(int selectedIndicatorThickness) {
+        mSelectedIndicatorThickness = selectedIndicatorThickness;
+        invalidate();
+    }
+
     void onViewPagerPageChanged(int position, float positionOffset) {
         mSelectedPosition = position;
         mSelectionOffset = positionOffset;
